PostScript 入門

[戻る]

プログラムが吐いた結果とか記録したデータとかを紙に印刷・ 配布したい時があります. 単なる文字列とか表だったら Office 系など適当なアプリに読み込んで 印刷するのが簡単でしょう. しかし, 例えば「どこがどんな値だったかなど地図みたいなものの要所要所に 数値を書き込む」などといった用途では, 手作業が多く面倒です.

一番正統な方法は, OpenPrinter/GetPrinter あたりの API を駆使して専用アプリを作ることでしょうか. でも一発動けばいいような使い捨てプログラムでそれを記述するのも面倒です. そういう時一旦 ps ファイルを作り ghostscript なり Acrobat Distiller なりで pdf に変換して印刷したり配布する技を使います. そんなに必要とする頻度が多くないため, 昔作ったプログラムが HDD の隅に転がってないか探したり, 無かったらネットで情報集めたりして作るわけですが, それもまた面倒なので簡単なメモを残すことにしました. なおコツは「凝らない」ことかと思います.

  1. 最初と最後に以下のようにする
    %!
    gsave
    〜本体〜
    showpage
    grestore
  2. 線を描くには以下のようにする (数値は座標)
    10 10 moveto
    10 100 lineto
    ・・・
    stroke
  3. 英数字を書くには以下のようにする(数値は座標)
    35 100 moveto
    (hoge) show
  4. 文字の大きさを指定するには以下のようにする (フォントも変えられる)
    /Times-Roman findfont 12 scalefont setfont
  5. 線の太さを指定するには以下のようにする
    0.5 setlinewidth
  6. 点線にするには以下のようにする ([]内の数列は偶数個で黒白の長さパターン, [] 外の数値はとりあえず 0 でいい)
    [1 1] 0 setdash
  7. 多角形を作るには 2. の stroke の前に closepath を入れる
  8. 丸を描くには以下のようにする (最初の二つが中心座標, 次の二つが中心から見た支店の位置, 最後が角度)
    newpath
    280 100 15 0 360 arc stroke
  9. 7 や 8 で中を塗りつぶすには stroke の代わりに fill と書く
  10. 色を薄めたい時は以下のように書く
    0.5 setgray
  11. これ以上凝ったことしようとすると以下の情報源にあたること

2013.12