クリエイター手抜きプロジェクト[180]InDesign CS3編 テキストカタログを作成する
── 古籏一浩 ──

投稿:  著者:


今回のスクリプトは、フォルダ内にあるテキストの内容とファイル名を自動的にレイアウトします。画像カタログならぬ、テキストカタログといったところです。

InDesign CS3では問題なく動作しますが、それ以前のMacOS X+InDesignの組み合わせでは、日本語ファイル名が化けることがあります。文字化けを防ぐには、以前紹介した濁点変換処理を組み込めば解決できます。



// あらかじめ、たくさんのページをつくっておく事!!
CR = String.fromCharCode(13);
startX = 0; // 開始位置(横)
startY = 0; // 開始位置(縦)
w = 100; // 横幅
h = 30; // 縦幅
maxCountX = 2; // 横の最大テキストフレーム数
maxCountY = 6; // 縦の最大テキストフレーム数
boxHeight = 15; // 行間
x = startX;
y = startY;
cntX = 0;
cntY = 0;
pageNum = 0; // ページ番号
docObj = app.activeDocument;
foldername = Folder.selectDialog("フォルダを指定してください");
if (foldername)
{
ext = ["*.txt","*.html"];
for (var j=0; j< ext.length; j++)
{
fileList = foldername.getFiles(ext[j]);
layoutText(fileList);
}
}
function layoutText(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.textType;
fileObj = new File(fileList[i].fsName);
flag = fileObj.open("r");
if (flag == true)
{
tfObj.contents = fileObj.read();
fileObj.close();
}
// ファイル名の追加
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++;
}
}
}
}

テキストファイルの内容を全て読み込んでいるため、処理が遅くなる可能性もあります。もし、先頭行だけで良いのであれば

tfObj.contents = fileObj.read();



tfObj.contents = fileObj.readln();

に変更してください。また、拡張子がtxtとhtmlファイルのみ読み込むようになっていますが、cssなど他の拡張子のファイルも読み込む場合にはext=[〜]に以下のようにして追加します。

ext = ["*.txt","*.html", "*.css"];

"*.doc"を指定してもMS WORDのファイルは文字化けしてしまいますので注意してください。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>

iPhone OS 2.1になって、入力は確かに快適になりました。パケット代金が10万円を超えてましたが、そこは定額なので安心。地図でも表示すれば、あっという間にパケット代が増えそう。約8,800円×24ヶ月なので211,200円。何とか元をとりたいなあ(笑)

さりげなくグーグルストリートビューとマップのページを作成。グーグルマップのページは他にも用意してあるのですが、書籍の関係上追加できないので新たにページを用意しました。

・Google Maps and Street View(グーグルマップ&ストリートビュー)API例文辞典
< http://www.openspc2.org/reibun/Google/StreetView/
>

ジョークで作ったページのアクセスが減らないので、とりあえず一つ追加。

・天空の城ラピュタのムスカ大佐がグーグルのトップだったら……
< http://www.openspc2.org/serif/1001/index.html
>

GoogleのブラウザのChromeのページも用意。
・Google Chrome β1 使い方辞典
< http://www.openspc2.org/reibun/GoogleChrome/beta1/index.html
>

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

Ajax ポケットリファレンス (POCKET REFERENCE) 実践!Ajaxフレームワーク jQuery jQueryで作る Ajaxアプリケーション マイクロフォーマット ~Webページをより便利にする最新マークアップテクニック~ (Web Designing BOOKS) prototype.jsパーフェクトリファレンス―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/22