ページ毎に収集したい

お客様というのは基本的にわがままです。編集後のデータを下さいと言われれば整理したデータをお届けしちゃうわけですが、中にはパッケージだけでは終わらない事もあります。しかしながら、できるだけお客様の意向にはお応えしちゃいたいわけです。
そんな時はさらりとスクリプトを書いて…と言う事になります。まあ、いつもうまくいくとは限りませんが。
今回もそんなこんなで、分厚いカタログをページ毎に画像集めておいてって言われたのでした。

そんなお客様の声にお応えすべく書いたのが以下のコードです。

var doc = app.activeDocument;
var i,j,tg,tgName,fl,pth;
var pgNm = “”;
var tgDirNm= Folder.selectDialog(‘Select Folder.’);
var tgDir = new Folder(tgDirNm);
for (i=0;i<doc.pages.length;i++){
pgNm = doc.pages[i].name;
imgDir = new Folder(tgDirNm + “/” + pgNm);
if (!imgDir.exists) imgDir .create();
for(j=0;j<doc.pages[i].allGraphics.length;j++){
tg = doc.pages[i].allGraphics[j];
if (tg==”[object EPS]”||tg==”[object Image]”){;
tgName = tg.itemLink.name;
fl = new File(tg.itemLink.filePath);
pth = imgDir + “/” + tgName;
fl.copy(pth);
}
}
}

単純ですから解説も必要ないとは思いますが、少しだけ。
Indesignでページ上の配置オブジェクトを参照するにはallGraphicsプロパティを利用します。このプロパティにはファイルネームやファイルパスも含まれていますので、これらの情報を利用して配置画像の情報を取り出します。実際のファイル操作はFileクラスのcopy()メソッドでおこないます。

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする

コメントを残す