Adobe 0046100128056 Scripting Guide - Page 60

Creating compound paths, Using Pathfinder operations, complete script

Page 60 highlights

CHAPTER 5: Working with Page Items Duplicating and Moving Page Items 60 Note that the move method truly moves the object-when you move a page item to another document, it is deleted from the original document. To move the object to another while retaining the original, use the duplicate method (see below). Use the duplicate method to create a copy of a page item. By default, the duplicate method creates a "clone" of an object in the same location as the original object. Optional parameters can be used with the duplicate method to move the duplicated object to a new location (including other pages in the same document, or to another document entirely). //Given a reference to a rectangle "myRectangle"... //Duplicate the rectangle and move the //duplicate to the location (12, 12). //Absolute move: var myDuplicate = myRectangle.duplicate([12, 12]); //Duplicate the rectangle and move the duplicate *by* 12 //points horizontally, 12 points vertically. //Relative move (note undefined first parameter): var myDuplicate = myRectangle.duplicate(undefined, [12, 12]); //Duplicate the rectangle to another page (rectangle appears at (0,0). var myPage = app.documents.item(0).pages.add(); var myDuplicate = myRectangle.duplicate(myPage); //Duplicate the rectangle to another document. var myDocument = app.documents.add(); var myDuplicate = myRectangle.duplicate(myDocument.pages.item(0)); You can also use copy and paste in InDesign scripting, but scripts using on these methods require that you select objects (to copy) and rely on the current view to set the location of the pasted elements (when you paste). This means that scripts that use copy and paste tend to be more fragile (i.e., more likely to fail) than scripts that use duplicate and move. Whenever possible, try to write scripts that do not depend on the current view or selection state. Creating compound paths InDesign can combine the paths of two or more page items into a single page item containing multiple paths using the Object > Paths > Make Compound Path menu option. You can do this in InDesign scripting using the makeCompoundPath method of a page item, as shown in the following script fragment (for the complete script, refer to the MakeCompoundPath script). //Given a rectangle "myRectangle" and an Oval "myOval"... myRectangle.makeCompoundPath(myOval); When you create a compound path, regardless of the types of the objects used to create the compound path, the type of the resulting object is polygon. To release a compound path and convert each path in the compound path into a separate page item, use the releaseCompoundPath method of a page item, as shown in the following script fragment (for the complete script, refer to the ReleaseCompoundPath script). //Given a polygon "myPolygon"... var myPageItems = myPolygon.releaseCompoundPath(); Using Pathfinder operations The InDesign Pathfinder features offer ways to work with relationships between page items on an InDesign page. You can merge the paths of page items, or subtract the area of one page item from another page item, or create a new page item from the area of intersection of two or more page items. Every page

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209

C
HAPTER
5: Working with Page Items
Duplicating and Moving Page Items
60
Note that the move method truly moves the object—when you move a page item to another document, it
is deleted from the original document. To move the object to another while retaining the original, use the
duplicate method (see below).
Use the duplicate method to create a copy of a page item. By default, the duplicate method creates a
“clone” of an object in the same location as the original object. Optional parameters can be used with the
duplicate method to move the duplicated object to a new location (including other pages in the same
document, or to another document entirely).
//Given a reference to a rectangle "myRectangle"...
//Duplicate the rectangle and move the
//duplicate to the location (12, 12).
//Absolute move:
var myDuplicate = myRectangle.duplicate([12, 12]);
//Duplicate the rectangle and move the duplicate *by* 12
//points horizontally, 12 points vertically.
//Relative move (note undefined first parameter):
var myDuplicate = myRectangle.duplicate(undefined, [12, 12]);
//Duplicate the rectangle to another page (rectangle appears at (0,0).
var myPage = app.documents.item(0).pages.add();
var myDuplicate = myRectangle.duplicate(myPage);
//Duplicate the rectangle to another document.
var myDocument = app.documents.add();
var myDuplicate = myRectangle.duplicate(myDocument.pages.item(0));
You can also use copy and paste in InDesign scripting, but scripts using on these methods require that you
select objects (to copy) and rely on the current view to set the location of the pasted elements (when you
paste). This means that scripts that use copy and paste tend to be more fragile (i.e., more likely to fail) than
scripts that use duplicate and move. Whenever possible, try to write scripts that do not depend on the
current view or selection state.
Creating compound paths
InDesign can combine the paths of two or more page items into a single page item containing multiple
paths using the Object > Paths > Make Compound Path menu option. You can do this in InDesign scripting
using the makeCompoundPath method of a page item, as shown in the following script fragment (for the
complete script, refer to the MakeCompoundPath script).
//Given a rectangle "myRectangle" and an Oval "myOval"...
myRectangle.makeCompoundPath(myOval);
When you create a compound path, regardless of the types of the objects used to create the compound
path, the type of the resulting object is polygon.
To release a compound path and convert each path in the compound path into a separate page item, use
the releaseCompoundPath method of a page item, as shown in the following script fragment (for the
complete script, refer to the ReleaseCompoundPath script).
//Given a polygon "myPolygon"...
var myPageItems = myPolygon.releaseCompoundPath();
Using Pathfinder operations
The InDesign Pathfinder features offer ways to work with relationships between page items on an
InDesign page. You can merge the paths of page items, or subtract the area of one page item from another
page item, or create a new page item from the area of intersection of two or more page items. Every page