So-net無料ブログ作成

DSCとEPSについて [PostScript]

PS BASIC


eps.png
PostScriptはプログラムの全体的な構造を規定していません。
DSC(Document Structuring Conventions/文書構造規則)は文書交換を容易にするために推奨されています。
つまりアプリに読み込まれた時やプリント出力を望ましい結果にするための規則です。
必須のコメントを除いては、この講座では必要のないものもありますが、知識としてご紹介します。

こちらを参考にいたしました。
PostScript Technology Center
PostScript Language Document Structuring Conventions (DSC) Specification Version 3.0 #5001
Encapsulated PostScript (EPS) File Format Specification Version 3.0 #5002

PostScriptドキュメントの構造は大きく分けてプロローグ(Prolog)とスクリプト(Script)に分けられます。
プロローグにはヘッダーとプロシージャ定義等が含まれます。
ヘッダー部分はDSCコメントのみで構成されます。
スクリプトにはドキュメント設定、ページ設定、ドキュメントトレーラーからなります。トレーラーは後処理やクリーンアップを行います。

EPSはこのDSCに基づいたフォーマットです。


DSC.png

コメントには引数ありのものとなしのものがあります。
(引数なしの例)%%EndComments
引数ありのものはコメントのキーワードの最後にコロンがありスペース文字1個空けて引数が続きます。
(引数ありの例)%%BoundingBox: 0 0 240 240
コメントは1行255文字以内です。
EPSファイルとして必要なものは次のDSCヘッダコメントのみです。
その他のタイトルや作成日、著作者・著作権等は入れておいた方がいいかと思います。
プロシージャとメインプログラムを分けたい場合は%%BeginProlog %%EndPrologを使います。

必須のDSCヘッダコメント

%!PS - Adobe-3.0 EPSF-3.0
%%BoundingBox:llx lly urx ury

%!PS - Adobe-3.0は PostScript言語のページ記述がDSCバージョン3.0に完全に準拠していることを示します。
EPSF-3.0はEPSF形式のバージョン3.0に準拠していることを示します。
%%BoundingBox:llx lly urx uryは図形を囲む境界ボックスで左下(llx、lly)および右上(urx、ury)の座標を指定します。これは整数のポイントで指定します。

推奨のDSCヘッダコメント

%%Title: 文字列
%%Creator: 文字列
%%CreationDate: 文字列

%%Title:にはドキュメントのタイトルを入れます。
%%Creator:にはドキュメントの作成者やドキュメントを作成したアプリ名などを入れます。
%%CreationDate: にはドキュメントが作成された日付を入れます。フォーマットはありませんので好きなように入れてください。
(例)%%CreationDate: 2017/6/21 or 2017年12月12日 or 20171015 等

その他

%%Copyright: 文字列

%%Copyright:は著作権情報を入れます。

%%EndComments

ヘッダーコメントの終わりを示します。

%%BeginProlog
%%EndProlog

この間にプロシージャ等の定義を含めます。
プロシージャがない場合でも%%EndPrologコメントを含めておけばドキュメント全体がスクリプトになります。

%%BeginSetup
%%EndSetup

この間にグラフィック状態の設定などを入れます。

%%EOF はドキュメントの最後を示します。


【サンプルコード】
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:家紋を描く(2278待チ合イ四ツ七宝) %%Creator: Toyokazu Nishi %%CreationDate: 2017/05/09 %%Copyright: 2017(c) Toyokazu Nishi %%EndComments %%BeginProlog /shippo { gsave 0 30 translate newpath 0 0 30 360 0 arcn clip newpath -30 30 30 0 360 arc 60 30 moveto 30 30 30 0 360 arc 0 -30 moveto -30 -30 30 0 360 arc 60 -30 moveto 30 -30 30 0 360 ar wh grestore } def 1.8 dup scale %%EndProlog /wh { 1 setgray fill } def 0 setgray 0 0 240 240 rectfill 120 120 translate 4 { shippo 90 rotate } repeat %%EOF

EPSフォーマットには制限があり、使ってはいけないオペレータがあります。showpage、copypage、clear、cleardictstack、initclip、quitなどです。EPSはもともと他のアプリにインポートするためのフォーマットなので、複数のEPSファイルにshowpageがあると、グラフィックス状態を初期化してしまうので不具合が起こる可能性があります。

タグ:PostScript
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:アート

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました