Adobe 0046100128056 Scripting Guide - Page 59

Grouping Items, Duplicating and Moving Items

Page 59 highlights

CHAPTER 5: Working with Page Items Grouping Page Items 59 //Given a polygon "myPolygon", remove the //last path point in the first path. myPolygon.paths.item(0).pathPoints.item(-1).remove(); Grouping Page Items In the InDesign user interface, you create groups of page items by selecting them and then choosing Group from the Object menu (or by pressing the corresponding keyboard shortcut). In InDesign scripting, you tell the object containing the page items you want to group (usually a page or spread) to group the page items, as shown in the Group script. //Given a page "myPage" containing at least two ovals and two rectangles... var myArray = new Array; //Add the items to the array. myArray.push(myPage.rectangles.item(0)); myArray.push(myPage.ovals.item(0)); myArray.push(myPage.rectangles.item(1)); myArray.push(myPage.ovals.item(1)); //Group the items. myPage.groups.add(myArray); To ungroup, you tell the group itself to ungroup, as shown in the Ungroup script. //Given a group "myGroup"... myPageItems = myGroup.ungroup(); There is no need to ungroup a group to change the shape, formatting, or content of the page items in the group. Instead, simply get a reference to the page item you want to change, just as you would with any other page item. Duplicating and Moving Page Items In the InDesign user interface, you can move page items by selecting them and dragging them to a new location. You can also create copies of page items by copying and pasting, by holding down Option/Alt as you drag an object, or by choosing Duplicate, Paste In Place, or Step and Repeat from the Edit menu. In InDesign scripting, you can use the move method to change the location of page items, and the duplicate method to create a copy of a page item (and, optionally, move it to another location). The move method can take one of two optional parameters: moveTo and moveBy. Both parameters consist of an array of two measurement units, consisting of a horizontal value and a vertical value. moveTo specifies an absolute move to the location specified by the array, relative to the current location of the zero point. moveBy specifies how far to move the page item relative to the current location of the page item itself. The Move script shows the difference between these two approaches. //Given a reference to a rectangle "myRectangle"... //Move the rectangle to the location (12, 12). //Absolute move: myRectangle.move([12, 12]); //Move the rectangle *by* 12 points horizontally, 12 points vertically. //Relative move (note undefined first parameter): myRectangle.move(undefined, [12, 12]); //Move the rectangle to another page (rectangle appears at (0,0); var myPage = app.documents.item(0).pages.add(); myRectangle.move(myPage); //To move a page item to another document, use the duplicate method.

  • 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
Grouping Page Items
59
//Given a polygon "myPolygon", remove the
//last path point in the first path.
myPolygon.paths.item(0).pathPoints.item(-1).remove();
Grouping Page Items
In the InDesign user interface, you create groups of page items by selecting them and then choosing
Group from the Object menu (or by pressing the corresponding keyboard shortcut). In InDesign scripting,
you tell the object containing the page items you want to group (usually a page or spread) to group the
page items, as shown in the Group script.
//Given a page "myPage" containing at least two ovals and two rectangles...
var myArray = new Array;
//Add the items to the array.
myArray.push(myPage.rectangles.item(0));
myArray.push(myPage.ovals.item(0));
myArray.push(myPage.rectangles.item(1));
myArray.push(myPage.ovals.item(1));
//Group the items.
myPage.groups.add(myArray);
To ungroup, you tell the group itself to ungroup, as shown in the Ungroup script.
//Given a group "myGroup"...
myPageItems = myGroup.ungroup();
There is no need to ungroup a group to change the shape, formatting, or content of the page items in the
group. Instead, simply get a reference to the page item you want to change, just as you would with any
other page item.
Duplicating and Moving Page Items
In the InDesign user interface, you can move page items by selecting them and dragging them to a new
location. You can also create copies of page items by copying and pasting, by holding down Option/Alt as
you drag an object, or by choosing Duplicate, Paste In Place, or Step and Repeat from the Edit menu. In
InDesign scripting, you can use the move method to change the location of page items, and the duplicate
method to create a copy of a page item (and, optionally, move it to another location).
The move method can take one of two optional parameters: moveTo and moveBy. Both parameters
consist of an array of two measurement units, consisting of a horizontal value and a vertical value. moveTo
specifies an absolute move to the location specified by the array, relative to the current location of the zero
point. moveBy specifies how far to move the page item relative to the current location of the page item
itself. The Move script shows the difference between these two approaches.
//Given a reference to a rectangle "myRectangle"...
//Move the rectangle to the location (12, 12).
//Absolute move:
myRectangle.move([12, 12]);
//Move the rectangle *by* 12 points horizontally, 12 points vertically.
//Relative move (note undefined first parameter):
myRectangle.move(undefined, [12, 12]);
//Move the rectangle to another page (rectangle appears at (0,0);
var myPage = app.documents.item(0).pages.add();
myRectangle.move(myPage);
//To move a page item to another document, use the duplicate method.