InDesignでJavaScript その7。
「InDesignでJavaScript その5」はコマ面付け用だったけど、これはページ丸ごと貼付ける用。
一応ページの奇数と偶数を判断するようにはしてあるけど、このままだとドブ分左右にズレているので、別途手動で修正しないとダメな仕様。
画像のみ動かそうと思ったらボックスごとズレちゃったから、その部分の記述は削除しちゃった(苦笑)
ちなみに「i % 2」の意味は「iを2で割った余」。
だから「(i % 2) == 1」は「iを2で割った余が1だったら」、つまり「iページが奇数だったら」という意味。
※07.01.11更新
画像のみ移動させる術を組み込みました
/*
★簡易面付けスクリプト_ページ用.jsx★
☆ver.1.0☆
Copyright [偽善者こうちゃん]
[2006.12.12] {
ver.1.0作成
}
ドキュメント内のすべてのページに画像ボックスを作成し
テキストファイルを読み込んで(フルパス指定)
画像を貼り込むJavaScript。
勉強用に作ったのでサンプルとして使わないほうが…。
なお、このJavaScriptを使用して損害をこうむっても
私は知りませんので、あしからず。
偽善者こうちゃん
http://macneko.blog77.fc2.com/
*/
//作業するドキュメントなどを変数に代入
docObj = app.activeDocument;
pageObj = app.activeDocument.pages;
//ファイルダイアログで読み込むテキストファイルを選択
filename = File.openDialog("面付けDBのテキストファイルを指定してください");
if (filename) {
fileObj = new File(filename);
//ファイルを読み込みモードで開く
flag = fileObj.open("r");
//ラベル用にテキストファイルの行数をカウント開始
lineCount = 1;
if (flag == true) {
//テキストの終わりまで{}の処理を続ける
while (!fileObj.eof) {
//ページ数分繰り返す
for (i = 0 ; i < docObj.pages.length ; i++) {
//奇数ページだったら
if ( (i % 2) == 1 || i == 1) {
//ボックス1個目
txtObj = pageObj[i].textFrames.add();
txtObj.visibleBounds = ["-3mm","-3mm","367mm","257mm"];
txtObj.contentType = ContentType.graphicType;
//ラベルに入れるためには文字化しないとダメらしい
txtObj.label = lineCount.toString() ;
//次のボックスのために+1
lineCount = lineCount + 1;
//ファイルを1行だけ読み込む
line = fileObj.readln();
//空行(改行のみ)じゃなかったら
if (line != "") {
//placeのファイルを読み込む
txtObj.place(line);
//枠内センターに配置
txtObj.fit(FitOptions.centerContent);
//画像を現在の位置から相対的に移動させる
txtObj.graphics[0].move("by",["1.5mm","0mm"])
}
} else {
//ボックス1個目
txtObj = pageObj[i].textFrames.add();
txtObj.visibleBounds = ["-3mm","0mm","367mm","260mm"];
txtObj.contentType = ContentType.graphicType;
//ラベルに入れるためには文字化しないとダメらしい
txtObj.label = lineCount.toString() ;
//次のボックスのために+1
lineCount = lineCount + 1;
//ファイルを1行だけ読み込む
line = fileObj.readln();
//空行(改行のみ)じゃなかったら
if (line != "") {
//placeのファイルを読み込む
txtObj.place(line);
//枠内センターに配置
txtObj.fit(FitOptions.centerContent);
//画像を現在の位置から相対的に移動させる
txtObj.graphics[0].move("by",["-1.5mm","0mm"])
}
}
}
}
fileObj.close();
//開けなかったら
} else {
alert("ファイルが開けませんでした");
}
}