InDesign CS6自動化作戦 (InDesign CS6 Automation Operation)

フォルダ内にあるPDFを自動的に読み込み配置する

■プログラム説明(ソースコード説明)
 フォルダ内にあるPDFを自動的に読み込み配置するにはFolder.selectDialog()を使って配置したいPDFがあるフォルダをユーザーに選択させます。このフォルダ内にあるPDFファイル一覧をfolderObj.getFiles("*.pdf")として取得します。取得したPDFファイルの数だけ繰り返し処理を行います。PDFの配置はテキストフレームを作成し、その中にPDFデータを読み込みます。これはファイルのパスを指定するだけです。読み込んだPDFにフレームをfit()を使って合わせます。あとはPDFが1つ読み込まれるたびにX座標を増加させます。一定範囲を超えたらY座標をずらします。Y座標がページの下限を超えた場合にページを追加します。これでフォルダ内のPDFが全て自動的にレイアウトされます。


■ソースコード
function layoutPDF()
{
folderObj = Folder.selectDialog("PDFのあるフォルダを選択してください");
fileList = folderObj.getFiles("*.pdf");
imageX = 0;
imageY = 0;
dx = 5;
dy = 3;
pageWidth = 18; // 20cm
pageHeight = 27; // 28cm
unit = "cm"
pageNo = 0;
pageObj = app.activeDocument.pages[pageNo];
for (i=0; i<fileList.length; i++)
{
imgObj = pageObj.textFrames.add();
imgObj.move([imageX+unit,imageY+unit]);
imgObj.contentType = ContentType.graphicType;
selFile = new File(fileList[i]);
imgObj.place(selFile);
imgObj.fit(FitOptions.frameToContent);
imageX = imageX + dx;
if (imageX > pageWidth)
{
imageX = 0;
imageY = imageY + dy;
if (imageY > pageHeight)
{
imageY = 0;
app.activeDocument.pages.add();
pageNo++;
pageObj = app.activeDocument.pages[pageNo];
}
}
}
}
layoutPDF();


■ポイント
 なし

■実際のスクリプトをダウンロード(sample.jsx.zip)

写真素材 PIXTA