« 2005年11月16日 | メイン | 2005年11月18日 »
2005年11月17日
EPS(Encapsulated PostScript) 続き
印刷用PDFを作る際に、EPS対策として考えられることは、
(1)EPSの中のPostScript部分を取り出して、PDF中に埋め込む。
(2)EPS画像を予めSVGなどのほかのベクトル画像に変換しておく。あるいは、EPSではなく、SVGで画像を用意してもらう。
(3)EPS画像を予めPDF化しておき、本文のPDFの中に画像部分のPDFを埋め込む。
など、幾つかあります。今日は、これについて話しましょう。
(1)は、PDFの中に、画像部分だけPostScript命令を埋め込んでしまうことになります。PostScript XObjectsを使います。これを実際にやっているPDFソフトもあったと思います。(いまちょっと思い出せないですが)。しかし、これは、PDF Referenceでは、非推奨の方法とされています。
(2)は、理論的には一番適切だろうと思います。SVGもベクトル画像で、PDFと親和性も高いので、SVGで書かれたグラフィックスをPDF中にベクトル画像として埋め込むのは簡単です。また、PostScriptインタープリターは完全に排除できます。しかし、実際は理屈どおりに行かないもので、例えば、アドビシステムズのIllustratorの出力するSVGは、オリジナルのイラストを忠実に再現していない部分もあります。これまでいくつか問題が報告されています。CorelのSVGの方がむしろ品質が良いと言っている人もいました。まあ、こういう状況はバージョン・アップで変わっていくでしょうが。
SVGがもっと普及して、Illustratorなどのグラフィックス・ソフトが完璧なSVGを生成できるようになれば、この方法が一番、実用的になると思います。現状では、SVGを作成するソフトとSVGを解読するソフトの間の互換性に注意して採用しなければなりません。
(3)は、EPSファイルをまとめてPDF化する過程で、AcrobatまたはPostScript互換のインタープリタを使うPDF作成ソフトが必要となります。しかし、一旦EPS形式のイラストをPDF化して用意しておけば、後は、もう、PostScriptインタープリターは不要となります。
そんな訳で、アンテナハウスのPDF生成ソフトには、PDF中にPDFを埋め込むための機能を用意しています。マニュアルなどのPDFをオンデマンドで生成する、という応用の際には、現時点で、一番実用的な方法ではないかと思っています。
このアイデア、自分達で知恵を絞って考えたんですが、その後、競合する製品でも同じことをしているのに気が付いて、「ああ、やっぱり、アソコの会社の人も同じことに苦しんだんだな」と思って、妙な連帯感を持ったものです。
私は、PostScriptは、TeXと同じで既に過去の技術になっていると思うのです。しかし、EPSがあるためにPostScriptインタープリターを手放せない、ということになっています。EPSに変わるものとしてSVGに期待するところが大きいのですが。
【参考】
PDF Reference Version 1.6, 4.7.1 PostScript XObjects より:
PDF1.4以降、アドビのPostScript言語のイメージ・モデルの特徴を全て包含したので、PostScript XObjectsの存在理由はなくなった。この機能は将来のバージョンで削除されることになるだろう、とあります。