前言撤回日記

pstopdf

Postscriptを手書きする時にインタプリタが必要な場合、もちろんAdobe Illstratorなどを持っているならそれを使えばいいし、MacGhostViewなどのシェアウェアを使用してもいいのだが、せっかくOS XはQuartzエンジンを使ってPostScriptをインタプリティングしてくれるのでこれを利用するのもおもしろいと思う。

まずプレビュー.appにpsファイルを放り込むとpdfに変換して描画してくれる。
ただ、なぜかオブジェクトが一定数を超えるとエラーになってしまうようだ。
これではepsファイルを10万個読み込んで描画する、などという時に困る(ふつうやらねえよ)。

そこでもう一つの手段としてターミナルでOS Xの独自コマンドpstopdfを実行するという手がある。

まずpsファイルを用意する。例えば適当なテキストエディタで新規ファイルを開き

%!
%%BoundingBox: 0 0 595 842
40 dict begin

/drawrect {
newpath
0 0 moveto
0 100 lineto
100 100 lineto
100 0 lineto
closepath
fill
} def

50 {
3 {
rand 100 mod 100 div
} repeat
0 setcmykcolor
drawrect
10 10 translate
} repeat

end
showpage


とか書いて「hoge.ps」などという名前で保存する。
そのあとターミナルで

$ pstopdf


としてからhoge.psをターミナルウィンドウに放り込みリターン。
すると同じフォルダの中に「hoge.pdf」という名前でpdfファイルが生成されるハズ。
なのでこれをsafariやプレビュー、あるいはAdobeReaderなどで開くと描画された状態を確認することができる。

簡単なエラーメッセージも吐くので、デバッグ環境が貧弱なPostscriptプログラミングには多少は役に立つのではなかろーか(ちなみにPostscriptインタプリタはdict biginを繰り返し使いすぎるとオーバーフローでスタックする事を最近知った)。

で、作例は単なる色違いの四角形を50個描いているだけだから面白みも何もないけれども、使い方次第でかなり楽しめます。

Copyright © 2004 elbro.net