2012-08-01から1ヶ月間の記事一覧

ps2pdf で Windows TrueTypeフォントを使う。(PostScript )

Cygwin + Ghostscrpit + Windows TrueTypeフォントに Ghostscrpit で Windows TrueTypeフォントを使う方法が掲載されていました。 GhostscrpitはC:\Program Files\gs\gs9.06\lib\cidfmap に記載されているフォント使いますので、ここにフォントを追加します…

文字列が枠内におさまるように自動改行しながら印刷する(PostScript)。

PostScriptで表を作るとき、長い文字列でも枠からはみ出さないように自動改行しながら印刷します。 %!PS-Adobe-3.0 % EUC-JP で記述すること。 2.834645669 2.834645669 scale % これでポイントだった単位がミリになります。 newpath /Ryumin-Light-EUC-H fi…

1バイト、2バイト、3バイト文字の入り乱れたEUC-JP文字列を1文字ずつ出力する(PostScript)。

文字列を出力して行末に達したときは、改行して次の行の先頭から表示しなければなりません。 行末に達したかどうかは currentpoint で現在の位置を求め、 stringwidth で印刷しようとする文字列の幅を求めれば良いのですが、長い文章全体の幅を求めても意味…

文字列が枠内におさまるように文字列の横幅を自動調整する(PostScript)。

PostScriptで表を作るとき、長い文字列でも枠からはみ出さないように文字列の横幅を自動調整します。 %!PS-Adobe-3.0 2.834645669 2.834645669 scale newpath /vPosition 297 20 sub def % A4 297mm /Space 3 def /CellW 100 def /ADJW CellW Space 2 mul su…

PostScript の文字列長、文字幅

PostScript で日本語の文字列を扱う場合、半角文字は1文字を長さ1と数えますが、全角文字は1文字を長さ2として計算します。 %! /Ryumin-Light-EUC-H findfont 20 scalefont setfont % 文字列の長さ (1) length == % -> 1 (日) length == % -> 2 (abcあいう) …

PostScript で printf デバッグ

PostScript TUTORIAL and COOKBOOKの51ページに星の形を描くプログラムがあります。文字列を表示する print とスタックを表示する pstack を使って動作する様子を追いかけてみます。 Chapter 6: MORE GRAPHICS (Saving the Graphics State) /starside { 72 0…

右寄せ印刷(PostScript TUTORIAL and COOKBOOK 42 ページ)

PostScript TUTORIAL and COOKBOOKの42ページ。右寄せ印刷の動作が分かりにくいので追ってみます。 /rightshow % stk: string { dup stringwidth pop %get length of string 120 exch sub %calc. white space 0 rmoveto %Move over that much show } def %sh…

PostScript で日本語を表示してみました。

EUC で記述し、EUC-H、EUC-V のフォントを使用すれば日本語をそのまま表示することが出来ます。 %!PS-Adobe-3.0 EPSF-3.0 % bluebook P40 Chapter 5: PRINTING TEXT % EUC で保存。 % mm の定義 % 10 mm と記述すれば 10 * 2.834645669 の値となり、10 mmを…

PosScript の型

PosScript の型を調べる命令 type を見つけたので表示させてみます。 GPL Ghostscript 9.06 (2012-08-08) Copyright (C) 2012 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. % 1 が…

PostScriptのスタック操作と手続きの合成

私は日本語訳の本を見ているのですが、PostScript TUTORIAL and COOKBOOKの39ページに内部でexchを使ってスタックの状態を入れ替えている手続きの定義がわかりづらかったので追ってみました。 x 座標、y 座標をスタックに積んで showGorilla を呼ぶと指定さ…