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

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

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


■ソースコード
function layoutJPEG()
{
folderObj = Folder.selectDialog("JPEG画像のあるフォルダを選択してください");
fileList = folderObj.getFiles("*.jpg");
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];
}
}
}
}
layoutJPEG();


■ポイント
 なし

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

写真素材 PIXTA