クリエイター手抜きプロジェクト[179]InDesign CS3編 画像カタログを作成する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,500文字)


フォルダに格納された画像を、まとめて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/ >

photo
Ajaxライブラリで かんたんインターフェイスデザイン
古籏一浩
ビー・エヌ・エヌ新社 2008-06-25

Ajax ポケットリファレンス (POCKET REFERENCE) 実践!Ajaxフレームワーク jQuery マイクロフォーマット ~Webページをより便利にする最新マークアップテクニック~ (Web Designing BOOKS) jQueryで作る Ajaxアプリケーション Adobe Flash CS3 詳細! ActionScript3.0入門ノート2 (CD-ROM付)



photo
実践!Ajaxフレームワーク jQuery
古籏 一浩
毎日コミュニケーションズ 2008-06-28
おすすめ平均 star
starもうすこしサンプルの解説がほしいところ

jQueryで作る Ajaxアプリケーション prototype.jsとscript.aculo.usによるリッチWebアプリケーション開発 prototype.jsパーフェクトリファレンス―Ajax実践プログラミング JavaScript & DHTMLクックブック 第2版 Webエキスパート必携テクニック集 Ajaxライブラリで かんたんインターフェイスデザイン



photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 基礎 Ajax + JavaScript 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) JavaScriptプログラミング入門 第2版

by G-Tools , 2008/09/08