Sun, January 3, 2010
MIF 上で EPS 画像を PNG に置きかえる方法( Adobe FrameMaker の話 )
Adobe FrameMaker ドキュメント中に含まれる(参照で挿入している) EPS 画像を PNG 形式の画像に まとめて入れ替える方法。
単純に foo.eps を foo.png に置換すればOKと思ったのだが、そこまで簡単ではなかった。 (のでメモ)
やり方
- fm ファイルを mif に保存
- mifを開いて、< ImportObject ... > を探す
- 該当部分を 以下のルールに従って 記述変更
記述変更ルール
- 削除タグ
- < NativeOrigin ... >
- 入替タグ
- < ImportObFileDI ... >
- < ImportObFile ... >
- < ImportHint ... >
- < ImportObUpdater ... >
- 追加タグ
- < BitMapDpi ... >
別に難しくはない(だろう、たぶん) あとはスクリプトで一括入れ替え処理をしましょう。
置きかえスクリプト(groovy)
あまり美しくはないですが、なんとか機能する置きかえスクリプトを作成したので ここにおいておきます。
- 置きかえスクリプト repalceEpsWithPng.groovy
- mifファイル sample.mif
- ※完全なmifではなく、問題部分だけを抜粋したテスト用mifファイルです。
このスクリプトの置きかえファイル形式はPNGで、解像度は100DPI固定になっているので注意してください。 (そうでない場合...つまりたとえば、JPGで120DPIなどの場合適宜スクリプトを書きかえてご利用ください。)
実行方法
$ groovy repalceEpsWithPng -i sample.mif -o result.mif
実行結果
sample.mif を処理して、result.mif に置きかえ結果を書き出します。
以下は、sample.mif と result.mif を diff -u したところ。
--- sample.mif 2010-01-15 23:08:24.000000000 +0900
+++ result.mif 2010-01-15 23:59:36.000000000 +0900
@@ -23,14 +23,15 @@
<Unique 1002618>
<Fill 7>
<RunaroundType Contour>
- <ImportObFileDI `<c\>fig<c\>Danger.eps'>
- <ImportObFile `fig/Danger.eps'>
- <ImportHint `0001FRAMEPSFWIN3 '>
- <ImportObUpdater `EPSI'>
+ <ImportObFileDI `<c\>fig<c\>Danger.png'>
+ <ImportObFile `fig/Danger.png'>
+ <ImportHint `0001IMAGPNG WIN3 '>
+ <ImportObUpdater `PNG'>
<ShapeRect 0.20189 mm 0.16845 mm 20.00017 mm 10.0001 mm>
- <BRect 0.20189 mm 0.16845 mm 20.00017 mm 10.0001 mm>
+ <BRect 0.20189 mm 0.16845 mm 20.00017 mm 10.0001 mm>
+<BitMapDpi 100>
<FlipLR No>
- <NativeOrigin 96.15762 mm 153.64294 mm>
+
> # end of ImportObject
> # end of Frame