2010年4月26日月曜日

パッケージしたFontsフォルダからフォントを収集するGroovyスクリプト

今日、上司から「AntBuilderを使うと便利だぜ」と教えてもらえたので、InDesignでパッケージしたフォントを一カ所に集めるスクリプトを書いてみた。


とても簡単。
ひとつのディレクトリに1媒体分全部のデータを集めて、ターミナルから
$ groovy collectFonts.groovy bookdir
みたいにすればFontsフォルダ内のフォントを全て、ディレクトリ直下に作ったFontsフォルダに集めてくれる。

AntというのはJavaでは定番の、Cでいうmakeのようなビルドツール。
でもそれだけでなく、ファイルをコピーしたりzipしたりしてくれる便利ツールらしい。
そういえばmakeも、そういうふうに使うんだと言ってたっけ。

20100513: Fontsフォルダの中にディレクトリがあっても収集できるように修正。

2010年4月16日金曜日

InDesignスクリプトで、アクセスするだけで落ちるオブジェクトの回避方法。

スクリプトを使っているとたまに、プロパティでアクセスするだけで落ちる(プロパティを持たない?)オブジェクトに出会うことがある。読み込んでプロパティを調べようとするだけで落ちるので,なんともしようがない。
Try & catchをうまく使って、それを回避してみる。
function checkProp(obj){
try{
var p=obj.properties;
return true;
}catch(e){
return false;
}
};

var obj=app.activeDocument.selection[0];
if(checkProp(obj)){
//実際の処理
}
こんな感じで,一回プロパティ(存在するはずのプロパティなら何でもよい)を調べて、エラーになるならfalseを返すようにしておく。
それで一度アクセスして大丈夫ならtrue、だめならfalseを返す。これでいけるはず……。