フォルダに格納された画像を、まとめてInDesign上に配置/レイアウトしたい時に便利なのが、今回の画像カタログ作成スクリプトです。InDesign CS3では複数画像をマウスクリック等で連続して配置することができますが、決められたサイズと座標に配置したい場合にはスクリプトの方が便利です。
以下のスクリプトを実行すると、選択したフォルダ内(第一階層のみ)の画像を読み出して自動的に配置します。この時に、画像の下にファイル名も同時に表示するようになっています。
以下のスクリプトを実行すると、選択したフォルダ内(第一階層のみ)の画像を読み出して自動的に配置します。この時に、画像の下にファイル名も同時に表示するようになっています。
Mac OS Xの場合は、InDesign CS3で動かしてください。CS2でも動作しますが、日本語ファイル名の一部が文字化けします。この文字化けを回避するには、以前にやった濁点等の変換処理を組み込めば、問題なく日本語もInDesign CS2で表示させることができます。
// あらかじめ、たくさんのページをつくっておく事!!
CR = String.fromCharCode(13);
startX = 0; // 開始位置(横)
startY = 0; // 開始位置(縦)
w = 30; // 横幅
h = 20; // 縦幅
maxCountX = 5; // 横の最大枚数
maxCountY = 8; // 縦の最大枚数
boxHeight = 15; // 行間
x = startX;
y = startY;
cntX = 0;
cntY = 0;
pageNum = 0; // ページ番号
docObj = app.activeDocument;
foldername = Folder.selectDialog("フォルダを指定してください");
if (foldername)
{
ext = ["*.jpg","*.png","*.psd"];
for (var j=0; j< ext.length; j++)
{
fileList = foldername.getFiles(ext[j]);
layoutImage(fileList);
}
}
function layoutImage(fileList)
{
for (i=0; i< fileList.length; i++)
{
var tfObj = app.activeDocument.pages[pageNum].textFrames.add();
tfObj.visibleBounds = [y,x,y+h,x+w];
tfObj.contentType = ContentType.graphicType;
imgPath = new File(fileList[i].fsName);
tfObj.place(imgPath);
tfObj.fit(FitOptions.contentToFrame);
// ファイル名の追加
var tfObj = app.activeDocument.pages[pageNum].textFrames.add();
tfObj.visibleBounds = [y+h,x,y+h+5,x+w];
tfObj.contentType = ContentType.textType;
tfObj.contents = File.decode(fileList[i].name);
x = x + w;
cntX++;
if (cntX >= maxCountX)
{
cntX = 0;
x = startX;
y = y + h + boxHeight;
cntY++;
if (cntY >= maxCountY)
{
cntY = 0;
y = startY;
pageNum++;
}
}
}
}
画像が大量にある場合には、ページ数をたくさん増やしておいてください。
このスクリプトでは、自動的にページを増やす機能がないためです。
上記のサンプルでは画像の拡張子がjpg, png, psdのみになっていますが、これは以下の部分で指定することができます。
ext = ["*.jpg","*.png","*.psd"];
例えばgif形式も生成対象として追加したい場合は以下のように指定します。
ext = ["*.jpg","*.png","*.psd", "*.gif"];
逆にJPEGファイルのみであれば以下のように指定します。
ext = ["*.jpg"];
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
先週ひそかにネタを追加したせいかどうかは分かりませんが、アクセスが多いまま……。わたしのまわりは、笑える人よりも笑えない人の多かったりしました……。
・気晴らしに読むためのジョーク
< http://www.openspc2.org/serif/index.html
>
Adobeの各種アプリケーションの次のバージョンであるCS4が今月発売だそうで。まだ、CS3ネタがあるのに、もうCS4になってしまうのは何とも。映像系以外はCS3でも充分過ぎると思うんですが。
iPhone 3GのSafariで遊べるゲームも追加&公開中です。適当に改造して遊んでください。
・iPhoneで、いろいろ作ろう!
< http://www.openspc2.org/iPhone/index.html
>
ハイビジョン映像は追加しすぎで、テラステーションのHDD容量が、あとわずか……。来年までは、とても持ちそうもないので新たな大容量のテラステーションが出ないと、そろそろ打ち止めかもしれません。
・ハイビジョン映像素材
< http://www.openspc2.org/HDTV/
>
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
by G-Tools , 2008/09/08