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

全ページのフレームに自動的に文字や画像を読み込ませる

■プログラム説明(ソースコード説明)
 先頭のページのテキストフレーム内に自動的にファイルから読み込んで文字や画像を表示させるには、あらかじめ読み込むファイルのパスをテキストフレームに入れておきます。サンプルではMacintosh HD:img:0001.jpgのようにファイルパスを表記しています。すでに文字が入っている場合に内容が入れ替わってしまうのはよくないため拡張子を調べてJPEG画像かテキストファイルの場合のみ処理を行います。この処理をドキュメントのページ数分だけ繰り返すことで全ページで自動的にレイアウトが行われます。


■ソースコード
function setData()
{
docObj = app.activeDocument.pages;
for (j=0; j<docObj.length; j++)
{
for (i=0; i<docObj[j].textFrames.length; i++)
{
pageObj = docObj[j];
filePath = pageObj.textFrames[i].contents;
if (filePath.indexOf(".jpg") > -1)
{
pageObj.textFrames[i].place(filePath);
}
if (filePath.indexOf(".txt") > -1)
{
fileObj = new File(filePath);
flag = fileObj.open("r");
if (flag)
{
txt = fileObj.read();
pageObj.textFrames[i].contents = txt;
fileObj.close();
}
}
}
}
}
setData();
setData();


■ポイント
 あらかじめInDesign側でフレームのサイズを設定しておくことができるので固定レイアウトの場合には便利です。

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

写真素材 PIXTA