2010年7月25日日曜日

InDesignを「連続で開く」「何かする」「上書き保存して閉じる」スクリプト覚え書き

連発で何かしたいことがよくあるので、メモ。

制作現場でさくりと使いたいので、下記の例では、例外処理とか何もしてません。

とりあえず開くファイル名は、CSVで与えるとする。
フォルダを選んでその中にあるファイルとかありますが、
ゆくゆくファイル名以外の情報も与えて与えてそこだけ何かするとかにも使いたいので、
こんなプランにしてます。
※例えば、ファイル名,50-53とかでページ数を与えて、そこだけプリントするとかね。

CSVの取り込みは、配列にさくっとしてくれる「CSVData.js」を使用。

下記サンプルは、
・CSVで与えたファイルを開いて、
・「す」という文字を探して、
・文字スタイルを変更して、
・上書き保存
するだけ。。。


#include 'CSVData.js';

var csvFile = new File('data.csv');

if(csvFile.open('r')){
var csv=csvFile.read();
}

var fileList = CSVData.parse(csv);

for (i=0;i<fileList.length;i++){
fileObj = new File(fileList[i]);
app.open(File(fileObj));
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = "す";
var myFoundItems = app.documents.item(0).findText();
myFoundItems[0].select();
myFoundItems[0].appliedCharacterStyle= "あか文字"

app.activeDocument.close(2036691744,fileObj,"",true);
}


上書きしますからね。テストとかするんだったら気をつけてくださいね。
怖かったら、

app.activeDocument.close();

としときましょう。確認ダイアログが出ます。

もうちょっとはしょってみると


#include 'CSVData.js';

var csvFile = new File('data.csv');

if(csvFile.open('r')){
var csv=csvFile.read();
}

var fileList = CSVData.parse(csv);

for (i=0;i<fileList.length;i++){
fileObj = new File(fileList[i]);
app.open(File(fileObj));

//やりたいことを書く

app.activeDocument.close(2036691744,fileObj,"",true);
// or app.activeDocument.close();
}


※ちなみにこれCS3でやったものです。

0 件のコメント: