PS vs EPS

1: PS と EPS は何が違う?

EPSファイルフォーマットは PostScript リファレンスマニュアルの中の 付録として定義されており、encapsulate(カプセル化)された PostScript(PS) ファ イルを意味します。この付録に示されている条件を満たした PS ファイルが EPS ファイルです。 つまり、全ての EPS ファイルは PS ファイルであると言えます。

しかし、様々な意味において EPS ファイルは「普通の」PS ファイルとは 異なった性質を持っています。ですから、「普通の」PS ファイルに当然期待 することが、EPS ファイルでは成立しないこともあります。

例えば、多くの EPS ファイルは、そのままプリンタに送っても何も印刷 されません。これは、EPS ファイルは単独で用いられることを前提にしておら ず、他の PS ファイルの中にインクルードされて使われることが前提となっている ことに起因します。

EPS ファイルをプリンタに送っても何も印刷されないのは、 ファイルの中で showpage というオペレータが使われていないためです。PostScript はグラフィッ クフォーマットではなくプログラミング言語であり、オペレータは関数に相当 するものです。オペレータの中には線を引いたりビットマップを描画したりす るものがありますが、これらはただちに印刷には結び付かず、結果はまずペー ジイメージを準備するためのメモリに書き込まれます。このメモリは、例えば PS プリンタが内蔵しています。現在のページ記述が全て完了し、メモリ上 に出力イメージが完成したら、これを実際のプリントエンジンに送って印刷を開 始させます。これを指示するのが showpage オペレータです。PS ファイルは、 このように1ページごとの記述の後に showpage を1回呼び出すようにプログ ラムされます。EPS ファイルは他の PS ファイルのページ記述の中に埋め込まれることが前提ですから、 仮に EPS ファイルの中で showpage が実行されて しまうとすると、そのページのそれ以降の内容は次のページに出力されること になってしまいます。これが EPS ファイルに通常 showpage がない理由です。

ただし、中には最後に showpage を実行する EPS ファイルを生成するア プリケーションも存在します。例えば XV がそうです。XV が出力する PS ファイ ルは印刷可能な通常の PS ファイルですが、同時に EPS ファイルでもありま す。実際、EPS ファイル中で showpage を実行することは禁止されてはいませ ん。ただし、EPS ファイルを取り込むアプリケーションは、PS ファイルを生 成する時にその EPS ファイルの前後で showpage を無効化することが義務付 けられています。

EPS ファイルは常に単一のページ記述から成ります。また、EPS ファイル の中で出力デバイスや用紙サイズを指定することは禁止されています。この理由は 明らかでしょう。

EPS ファイルは PostScript の文書構造化規約(DSC)に則っており、パー セント記号2つで始まる行(DSC コメント)でその文書構造を記述することに なっています。中でも最も重要なのは次のコメントで、省略できません。

%%BoundingBox: llx lly urx ury

%%BoundingBox: は EPS ファイルが生成するグラフィックスの 外接矩形の大きさを示すもので、EPS ファイルを取り込むアプリケーションは これを頼りにレイアウトを行います(つまり、EPS 本体の内容は一切チェック しません)。EPS とは何かを理解することは、%%BoundingBox: を理解することと同じと言っても過言ではありません。


Copyright 1998 Hiroki Mori. All Rights Reserved.