InDesignのスクリプトについて
InDesignのスクリプトで自動化したいことがあり、試行錯誤しているのですが行き詰まってしまいました。アドバイスをいただけましたら幸いです。
【環境】
OS:Mac OS X 10.5.8
ソフト:InDesign CS3
ExtendScript Toolkit 2を使って、JavaScriptで作成
【したいこと】
・タテ310mm×ヨコ225mmの用紙に、タテ148mm×ヨコ105mmで作成したpdfデータ(複数ページ)を全ページ4面付(1ページにpdf1ページ目、2ページにpdf2ページ目…をそれぞれ4枚ずつ配置)したい
・配置場所はそれぞれの4角(右と左の画像間は15mm、上と下の画像間は14mm)
【今の状態】
pdfを呼び出す→指定サイズの新規ドキュメントを作る→左上にボックスをつくり、画像中央配置
filename = File.openDialog("Select Pdf");
if(filename)
{
startNum = 1;
endNum = parseInt(prompt("終了ページ","終了ページを入力"));
pageObj = app.documents.add();
pageObj.documentPreferences.pageWidth = "225mm";
pageObj.documentPreferences.pageHeight = "310mm";
for(i=startNum; i<=endNum; i++)
{
app.pdfPlacePreferences.pageNumber = i;
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = ["0mm","0mm","148mm","105mm"];
txtObj.place(filename);
txtObj.fit(FitOptions.frameToContent);
pageObj = app.activeDocument.pages.add();
}
}
これを4面配置できるようにしたく、ボックスを4つ配置したのですが、これだと最後のボックスにしかpdfが配置されませんでした。
boxdata = [
[0,0,105,148],
[0,120,225,148],
[162,0,105,310],
[162,120,225,310]
];
filename = File.openDialog("Select Pdf");
if(filename)
{
pageObj = app.documents.add();
pageObj.documentPreferences.pageWidth = "225mm";
pageObj.documentPreferences.pageHeight = "310mm";
for(i=0; i<boxdata.length; i++)
{
y1 = boxdata[i][0]+"mm";
x1 = boxdata[i][1]+"mm";
x2 = boxdata[i][2]+"mm";
y2 = boxdata[i][3]+"mm";
txtObj = pageObj.textFrames.add();
txtObj.visibleBounds = [y1,x1,y2,x2];
}
txtObj.place(filename);
txtObj.fit(FitOptions.frameToContent);
}
ボックスを4つ作るより、繰り返し複製したほうがいいのかともおもいましたが、書き方がわかりませんでした。
改良スクリプトと、できましたら今後の勉強のために、スクリプトの解説もいただけますと嬉しいです。よろしくお願いいたします。