Adobe 0046100128056 Scripting Guide - Page 84

Adobe 0046100128056 - InDesign - Mac Manual

Page 84 highlights

CHAPTER 6: Text and Type Understanding Text Objects 84 var myDocument = app.documents.item(0); var myPage = myDocument.pages.item(0); var myTextFrameA = myPage.textFrames.item(3); var myTextFrameB = myPage.textFrames.item(2); var myTextFrameC = myPage.textFrames.item(1); var myTextFrameD = myPage.textFrames.item(0); //Move WordC between the words in TextFrameC. myTextFrameD.parentStory.paragraphs.item(-1).words.item(0).move(LocationOptions.befor e, myTextFrameC.parentStory.paragraphs.item(0).words.item(1)) //Move WordB after the word in TextFrameB. myTextFrameD.parentStory.paragraphs.item(-2).words.item(0).move(LocationOptions.after , myTextFrameB.parentStory.paragraphs.item(0).words.item(0)) //Move WordA to before the word in TextFrameA. myTextFrameD.parentStory.paragraphs.item(-3).words.item(0).move(LocationOptions.befor e, myTextFrameA.parentStory.paragraphs.item(0).words.item(0)) //Note that moving text removes it from its original location. When you want to transfer formatted text from one document to another, you also can use the move method. Using the move or duplicate method is better than using copy and paste; to use copy and paste, you must make the document visible and select the text you want to copy. Using move or duplicate is much faster and more robust. The following script shows how to move text from one document to another using move and duplicate. (We omitted the myGetBounds function from this listing; you can find it in "Creating a text frame" on page 71," or see the MoveTextBetweenDocuments tutorial script.) //Create the source document. var mySourceDocument = app.documents.add(); var mySourcePage = mySourceDocument.pages.item(0); var mySourceTextFrame = mySourcePage.textFrames.add({geometricBounds:myGetBounds(mySourceDocument, mySourcePage), contents:"This is the source text.\rThis text is not the source text."}); var mySoureParagraph = mySourceTextFrame.parentStory.paragraphs.item(0); mySoureParagraph.pointSize = 24; //Create the target document. var myTargetDocument = app.documents.add(); var myTargetPage = myTargetDocument.pages.item(0); var myTargetTextFrame = myTargetPage.textFrames.add({geometricBounds:myGetBounds(myTargetDocument, myTargetDocument.pages.item(0)), contents:"This is the target text. Insert the source text before this paragraph.\r"}); //Move the text from the source document to the target document. //This deletes the text from the source document. mySoureParagraph.move(LocationOptions.AT_BEGINNING, myTargetTextFrame.insertionPoints.item(0)); //To duplicate (rather than move) the text, use the following: //mySoureParagraph.duplicate(LocationOptions.AT_BEGINNING, myTargetTextFrame.insertionPoints.item(0)); When you need to copy and paste text, you can use the copy method of the application. You will need to select the text before you copy. Again, you should use copy and paste only as a last resort; other approaches are faster, less fragile, and do not depend on the document being visible. (We omitted the myGetBounds function from this listing; you can find it in "Creating a text frame" on page 71," or see the CopyPasteText tutorial script.)

  • 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
6: Text and Type
Understanding Text Objects
84
var myDocument = app.documents.item(0);
var myPage = myDocument.pages.item(0);
var myTextFrameA = myPage.textFrames.item(3);
var myTextFrameB = myPage.textFrames.item(2);
var myTextFrameC = myPage.textFrames.item(1);
var myTextFrameD = myPage.textFrames.item(0);
//Move WordC between the words in TextFrameC.
myTextFrameD.parentStory.paragraphs.item(-1).words.item(0).move(LocationOptions.befor
e, myTextFrameC.parentStory.paragraphs.item(0).words.item(1))
//Move WordB after the word in TextFrameB.
myTextFrameD.parentStory.paragraphs.item(-2).words.item(0).move(LocationOptions.after
, myTextFrameB.parentStory.paragraphs.item(0).words.item(0))
//Move WordA to before the word in TextFrameA.
myTextFrameD.parentStory.paragraphs.item(-3).words.item(0).move(LocationOptions.befor
e, myTextFrameA.parentStory.paragraphs.item(0).words.item(0))
//Note that moving text removes it from its original location.
When you want to transfer formatted text from one document to another, you also can use the
move
method. Using the
move
or
duplicate
method is better than using copy and paste; to use copy and paste,
you must make the document visible and select the text you want to copy. Using
move
or
duplicate
is
much faster and more robust. The following script shows how to move text from one document to another
using
move
and
duplicate
. (We omitted the
myGetBounds
function from this listing; you can find it in
“Creating a text frame” on page 71
,” or see the MoveTextBetweenDocuments tutorial script.)
//Create the source document.
var mySourceDocument = app.documents.add();
var mySourcePage = mySourceDocument.pages.item(0);
var mySourceTextFrame =
mySourcePage.textFrames.add({geometricBounds:myGetBounds(mySourceDocument,
mySourcePage), contents:"This is the source text.\rThis text is not the source
text."});
var mySoureParagraph = mySourceTextFrame.parentStory.paragraphs.item(0);
mySoureParagraph.pointSize = 24;
//Create the target document.
var myTargetDocument = app.documents.add();
var myTargetPage = myTargetDocument.pages.item(0);
var myTargetTextFrame =
myTargetPage.textFrames.add({geometricBounds:myGetBounds(myTargetDocument,
myTargetDocument.pages.item(0)), contents:"This is the target text. Insert the source
text before this paragraph.\r"});
//Move the text from the source document to the target document.
//This deletes the text from the source document.
mySoureParagraph.move(LocationOptions.AT_BEGINNING,
myTargetTextFrame.insertionPoints.item(0));
//To duplicate (rather than move) the text, use the following:
//mySoureParagraph.duplicate(LocationOptions.AT_BEGINNING,
myTargetTextFrame.insertionPoints.item(0));
When you need to copy and paste text, you can use the
copy
method of the application. You will need to
select the text before you copy. Again, you should use copy and paste only as a last resort; other
approaches are faster, less fragile, and do not depend on the document being visible. (We omitted the
myGetBounds
function from this listing; you can find it in
“Creating a text frame” on page 71
,” or see the
CopyPasteText tutorial script.)