PostScriptはプログラムの全体的な構造を規定していません。
DSC(Document Structuring Conventions/文書構造規則)は文書交換を容易にするために推奨されています。
つまりアプリに読み込まれた時やプリント出力を望ましい結果にするための規則です。
必須のコメントを除いては、この講座では必要のないものもありますが、知識としてご紹介します。
こちらを参考にいたしました。
PostScriptドキュメントの構造は大きく分けてプロローグ(Prolog)とスクリプト(Script)に分けられます。
プロローグにはヘッダーとプロシージャ定義等が含まれます。
ヘッダー部分はDSCコメントのみで構成されます。
スクリプトにはドキュメント設定、ページ設定、ドキュメントトレーラーからなります。トレーラーは後処理やクリーンアップを行います。
EPSはこのDSCに基づいたフォーマットです。
コメントには引数ありのものとなしのものがあります。
(引数なしの例)%%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 または 2017年12月12日 または 20171015 等
その他
%%Copyright: 文字列
%%Copyright:は著作権情報を入れます。
%%EndComments
ヘッダーコメントの終わりを示します。
%%BeginProlog
%%EndProlog
この間にプロシージャ等の定義を含めます。
プロシージャがない場合でも%%EndPrologコメントを含めておけばドキュメント全体がスクリプトになります。
%%BeginSetup
%%EndSetup
この間にグラフィック状態の設定などを入れます。
%%EOF はドキュメントの最後を示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 %!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があると、グラフィックス状態を初期化してしまうので不具合が起こる可能性があります。
コメント
コメント一覧 (5件)