用于向每个给定页面添加页面的 InDesign 脚本

InDesign script to add a page to every given page

我有一个约 400 页的 InDesign,需要一个相当简单的脚本来向每个现有页面添加一个页面(因此:p1+1;p2+1;p3+1 ...)。此外,添加的页面应包含两个文本框。我正在使用 InDesign CS6 和 JS。

我有一些台词,但不是全部:

// the start
var myDocument = app.activeDocument;

// the loop
for(var i = 0; i < myDocument.pages.length; i++) {}

// text frames
var rect = myDocument.pages.item(0).rectangles.add();
var rect2 = myDocument.pages.item(1).rectangles.add();

var gb = [125.891, 25, 230.458, 88];
var gb2 = [125.891, 94, 230.458, 157];

rect.geometricBounds = gb;
rect2.geometricBounds = gb2;

我能想到两种类似的方法。循环页数并在正确位置添加页面或在末尾添加所有页面并使用 move() 将它们移动到正确位置。试试这个:

var myDocument = app.activeDocument;

var addPageLocation = 0;  

var docLength = myDocument.pages.length;  
// every time yo add a page pages.length will increase

// the loop
for(var i = 0; i < docLength; i++) {

    myDocument.pages.add(LocationOptions.AFTER, myDocument.pages[addPageLocation] );

    //you will need to add text frame as rectangles are used for graphics or pdfs

    var tf = myDocument.pages[addPageLocation+1].textFrames.add();
    var tf2 = myDocument.pages[addPageLocation+1].textFrames.add();

    var gb = [125.891, 25, 230.458, 88];
    var gb2 = [125.891, 94, 230.458, 157];

    tf.geometricBounds = gb;
    tf2.geometricBounds = gb2;

    //get the new page location including the page which was added
    addPageLocation = addPageLocation+2;

}