掴んだ物(技術)はちゃんと食べる記録帳

興味を持ったものに対する足跡を残していくために作成しました。勉強しながら書いているので、間違いや短絡もあると思います。ご指摘いただけると喜びます。

Let's PostScript(7) テキストの描画の基本

ポイントについて

DTPの一般的な話となるのですが、描画位置を指定するのにポイントという単位を使います。 ポイントにもいろいろな種類がありますが、PostScriptで用いるのはDTPポイントと呼ばれるものです。 もともとはXeroxのローカル仕様だったものですが、AdobeがPostScriptで採用したことが決定打となり、デファクトスタンダートとなって現在に至っています。

1ポイント=1/72インチ=0.3528mm

※1インチ=2.54センチ

座標変換や空間の種類を説明する際に詳細を説明する予定です。

テキスト描画の基本

テキスト描画の基本となるスクリプトを以下に記します。

/Times-Roman findfont
12 scalefont
 setfont
0 720 moveto
(Sample Text) show

これでshowpageすれば、TimesRomanフォントでSampleTextが描画されるのを確認できます。

このプログラムは、以下の処理を行っています。

/Times-Roman findfont

findfontオペレータはフォント名のリソースを探索し、存在している場合にはフォントの定義を仮想メモリに格納し、フォントの定義を格納したフォント辞書をOperandStackに格納する。

12 scalefont

OperandStackからフォント辞書とグリフサイズの指定を受け取り、グリフサイズを反映させたフォント辞書をOperandStackへ格納する

setfont

OperandStackからフォント辞書を受け取り、グラフィックス状態のフォント辞書へ反映する

0 720 moveto

描画位置を X=0 y=720ポイントへ移動する

(Sample Text) show

OperandStackへ(Sample Text)の文字列Objcetを格納する。showオペレータはOperandStackから文字列Objectを受け取り、カレントフォント(グラフィックス状態のフォント辞書)で文字列を描画する。

とりあえず、テキスト描画をしたかったので、最低限の部分を押さえました。

詳細はフォントを学ぶ際に抑えていこうと思います。

PostScriptは標準で以下のフォントはまず使用可能です。

  • /Times-Roman(タイムズローマン)
  • /Helvetica(ヘルベチカ)
  • /Courler(クーリエ)

使用可能なフォントの一覧は以下のスクリプトを実行するとえることができます。おそらくはものすごい量が出てきます。

(*) {==} 256 string /Font resourceforall

次は、ユーザー空間とデバイス空間を押さえていきたいと思います。