イラレのEPSファイルを考察する

今回は文字についての考察です。
文字を比較していて気がついたのですが、イラレのEPSフォーマットは8と9で大きく異なります。

まず、文字の記述方法です。
イラレ8までは、「(abcdefg) TX 1 0 Tk」となりますが、
イラレ9以降では、「(abcdfeg) sh」となります。

文字を含むかどうかをチェックしたい場合、
イラレ8までは、ほかにtxを含むものがないので「/\) tx/i」でよく、
イラレ9からは、shの後は必ず改行があり、showとかぶるので「/\) sh\r?\n/」となります。「\r?\n」とするのは、エディタで改行コードを変えた場合に備えておきます。

次は画像についてです。
イラレ8までは、「%AI5_File:」があれば画像情報を含んでいることになります。
イラレ9ではどうやらPDFとして埋め込まれているようで、フォーマットについて理解がありませんが、おそらく「Adobe_AGM_Image」このあたりが怪しいです。

とりあえず、こんな感じです。

イラストレーターのEPSデータを考察

イラストレータといっても、手持ちのは古いままで7でのお話です。
EPSで保存すると、プレビューとサムネールを保存するかどうかの確認がありますが、これはいったいどのように格納されているかを調べてみました。

調べるといっても、サムネイルもプレビューも含まないで保存したEPSファイルと、サムネイルまたはプレビューを含んだEPSファイルを比較しただけです。

保存したファイル名と保存日時のデータは無視して、それ以外を比較します。

まず、サムネイルを含んだEPSファイルを比較しました。
違っていたのは、以下のとおりです。
46行目にある
%AI7_Thumbnail: 128 128 8
から
%%EndData
これが、サムネイルデータのようです。
バイナリが16進で格納されているようです。
どの画像形式かはわかりませんが、おそらくTIFFではないでしょうか。

次に、プレビューを含んだEPSファイルを比較しました。
違っていたのは、以下のとおりです。
1行目の先頭にバイナリデータが含まれています。
その後に通常のEPSデータが始まります。
%!PS-Adobe-3.0 EPSF-3.0
そして34行目に、
プレビューを含まないEPSファイルでは
%AI3_DocumentPreview: Header
となっているところが、
プレビューを含むEPSファイルでは
%AI3_DocumentPreview: PC_ColorTIFF
となっいます。
そして一番最後にまたバイナリデータが含まれています。
通常のEPSデータの末尾である
%%EOF
の後に、バイナリデータが追加されています。

他のイラストレータのバージョンでは、また違うかもしれません。
比較に使用したファイルをおいておきます。
サムネイルもプレビューも含まないEPSファイル
サムネイルを含むEPSファイル
プレビューを含むEPSファイル