[目次へもどる] [前へ] [次へ]

お約束の"Hello world!"

世のプログラミングの入門書の多くは,なぜか"Hello world!"という文字列 (多少は異なりますが・・・)を出力するというサンプルプログラムから 始まります.このページでも古式ゆかしく,まずは"Hello world!"という文字列を 作画するコードから始めます.

Hello world!

Postscriptは基本的にascii文字列からなるテキストファイルです. これは他のプログラミング言語と同じですね.では次に"helloworld.ps" を示します.なお,左端の数字は行数を表しています.決してコードの 中に含めないで下さい.

helloworld.ps
001 %!PS-Adobe-3.0
002 %%Title: Helloworld
003 %%Creator: Msaka
004 %%CreationDate: Thu Feb  4 04:51:03 1999
005 %%Orientation: Portrait
006 %%Pages: 1
007 %%EndComments
008 
009 /Helvetica findfont 60 scalefont setfont
010 100 100 moveto
011 (Hello World!) show
012 
013 showpage
014 

これをプリンタやghostscriptに入力すると,次のような絵が得られます.

helloworld.jpg
30dpiでA4用紙に出力

ヘッダとコメント

"helloworld.ps"の1行目から6行目まではヘッダになっています. 1行目の"%!PS"がPostscriptファイルの識別子であるほか,ヘッダには色々な情報が 書かれます.ところで,Postscriptでは"%"から行末まではコメントであり, インタプリタは"%"から行末までを無視します.ではこれらの識別子やヘッダは コメント行として無視されないのでしょうか.おそらくインタプリタは無視 していると思われます.(勝手な憶測ですが)

では,なぜ識別子やヘッダをつけるのでしょうか?それは,そのファイルが Postscriptファイルであることや付加的な情報を知らせる必要がある場合からです. (だと思います)たとえばCorel DrawでPostscriptファイルをインポート(取り込み) しようとするとき識別子がないとPostscriptと認識してくれません.

本体

9行目から13行目が本体です.9行目は後に紹介しますが,フォントを"Helvetica"で 大きさを"60"にセットする事を意味します.10行目はx方向に100,y方向に100移動する ことを意味します.11行目は"Hello World!"と文字列を描くことを意味します. 13行目は実際にページに出力する事を意味します.Postscriptはもともとページプリンタ へ出力する事を念頭において設計されており,"showpage"を読み取って始めて紙へ出力 します.ですから,この"showpage"を忘れるといつまでたってもプリンタから出力されません. (私もよくやります)

デリミタ

Postscriptは改行文字と空白文字をデリミタ(区切り文字)として認識します. ですから,C言語と同じで行の概念が弱く,区切りの必要な部分であれば改行文字や 空白文字が何文字入ってもOKです.ですから,10行目を「100<改行>100<改行>moveto<改行>」 としても全く結果は同じです.


[目次へもどる] [前へ] [次へ]