InDesign SDK付属 のIDML サンプル, helloworld を groovy で生成してみた
helloworld.idml を groovy で生成してみたのでメモ。
groovy の MarkupBuilder
を使ってIDML
用のXMLを生成すれば少しは楽になるのではないかと。
結構細かいところで躓きました。躓きポイントは以下の通り。
- helloworld.idml に含める XML の属性値をシングルクオートで囲っているとNG, 必ずダブルクオートで囲む必要がある
- zip アーカイブのルートに配置する mimetype は無圧縮にする必要がある
produce_helloworld_idml.groovy
ポイント1)属性値はダブルクオートで囲む
MarkupBuilder のデフォルトは属性値の囲みはシングルクオートです。 そこで、setDobuleQuotes( true ) を呼び出してダブルクオートで出力するように変更します。
ポイント2)mimetype は無圧縮
mimetype だけを無圧縮で処理するのが面倒だったのでとりあえず zip ファイルに入れるすべてのファイルを 無圧縮にしています。
new AntBuilder().zip(destfile:'helloworld.idml', basedir:'.', compress:'false'){}
詳しくは Ant の zip タスクをご覧ください。
使い方
$ groovy -c UTF-8 produce_helloworld_idml.groovy
あとは生成された、helloworld.idml を InDesign CS5 で開きます。
Mac OS X のターミナルなら open コマンドでOK.
$ open helloworld.idml