読者です 読者をやめる 読者になる 読者になる

ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

InDesignでJavaScript その7

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("ファイルが開けませんでした");

}

}