★ Ghostscript 6.53 on Linux をご覧ください。 以下は古い内容です。
Ghostscript はフリーソフトの PostScript インタープリタです。 Unix や Windows で PostScript ファイルを読み込んで, 画面やプリンタやいろいろな形式のファイルに出力します。 詳しくは本家ホームページ Ghostscript, Ghostview and GSview をご覧ください。
PostScript そのものについては,Adobe から4冊の技術資料が出ており, うち3冊はアスキーから邦訳が出ています。 他にもたくさんの解説書が出ています。 CQ出版社の『PostScript詳細解説』(1997年)という本には, 和製の LEGATOSCRIPT という Macintosh 上の PostScript インタープリタのデモ版が CD-ROM で付いています。
Ghostscript には GNU 版と Aladdin 版があります。 どちらもフリーソフトですが, Aladdin 版は商業的な配布に制限があるようです。 進化が速い Aladdin 版のほうが広く使われています。
もともと Unix 上のソフトですが, Windows 版や Macintosh 版も出ています。 Unix での起動コマンドは gs です。
Unix では Ghostview,Windows では GSview という GUI 型のソフトもあります。 これらはいずれも背後で Ghostscript を動かしています。 Ghostview の起動コマンドは ghostview です。 Ghostview よりもっとかっこいいフロントエンドとして gv があります。 これも Linux をインストールすればたいてい入ります。 gv なら gzip で圧縮された PostScript ファイルでもそのまま見ることができます。
以下は Linux に Ghostscript 5.50 をソースコードからインストールした記録です。 古い Ghostscript 5.10 のインストール記録は ここ に移しました。
まず CTAN の support/ghostscript/aladdin/gs550 から
また,5.50用の日本語化パッチを JAIST の田中 哲(あきら)さんの Japanized Ghostscript Information から gs5.50-vflib-1.0.tar.gz(VFlib を使うためのパッチ)をいただいてきます。
これらを適当なディレクトリ(たとえば /usr/local/src)で展開します。 なお,zlib や libpng については ここ もご覧ください。
cd /usr/local/src tar xvzf /pub/src/ghostscript-5.50.tar.gz tar xvzf /pub/src/gs5.50-vflib-1.0.tar.gz tar xvzf /pub/src/ghostscript-5.50jpeg.tar.gz tar xvzf /pub/src/ghostscript-5.50zlib.tar.gz tar xvzf /pub/src/ghostscript-5.50libpng.tar.gz patch -p0 < gs5.50-vflib-1.0/gs5.50-vflib-1.0.diff cd gs5.50 ln -s ../zlib-1.1.3 zlib ln -s ../libpng-1.0.2 libpng ln -s ../jpeg-6b jpeg cp unix-gcc.mak makefile makefile を編集(↓) make make install
makefile の編集は,古い(PJE 付属の)VFlib を使っている場合は,
VFLIBS=VFlib2 ttfとなっているところの頭に # をつけてコメントアウトし,
#VFLIBS=VFlibの頭の # を消します。新しい VFlib2 の場合は少し下をご覧下さい。
最後にフォントをインストールします。
cd /usr/local/share/ghostscript tar xvzf /pub/src/ghostscript-fonts-std-5.50.tar.gz cd fonts tar xvzf /pub/src/ghostscript-fonts-other-5.50.tar.gz
うまくできているかどうかは,ソース(gs5.50 の下)に tiger.ps というサンプルが含まれていますので, これを表示してみます。
cd /usr/local/src/gs5.50 gs tiger.ps
虎の絵が出て,press <return> to continue と言ってきますので, リターンキーを押します。GS> のプロンプトが出たら quit と打ち込めば終了します。 同じことを ghostview tiger.ps や gv tiger.ps で試してみてください。
漢字がうまく表示できるかどうかは
cd /usr/local/src/gs5.50/vflib gs article9.psとしてみます(ghostview や gv も同様)。
この場合は makefile の編集は不要です。
The FreeType Project から FreeType 1.2 と, The VFlib Project から VFlib2-2.24.1.tar.gz をいただいてきて,この順にインストールします。
/usr/local/share/VFlib/2.24.1 にある vfontcap を適当に編集して使います。たとえば
min:\ :fc=watanabe-mincho: goth:\ :fc=watanabe-mincho:の watanabe- は ms- に直し,
r-microsoft-mincho|MicroSoft mincho:\ :ft=truetype:\ :ff=/usr/local/share/fonts/truetype/msmincho: r-microsoft-gothic|Microsoft gothic:\ :ft=truetype:\ :ff=/usr/local/share/fonts/truetype/msgothic:となっているところの /usr/local/share/fonts/truetype の部分を C:\WINDOWS\FONTS に相当するディレクトリに書き直します。 ここに msmincho.ttc,msgothic.ttc があるはずです。 また,VFlib 付属の ttindex を使って msmincho.tti,msgothic.tti を生成し, msmincho.ttc,msgothic.ttc と同じディレクトリに置きます。
まず Ghostscript のサポートする出力形式を調べるため gs -h と打ち込みます。あるいは gs を起動して GS> のプロンプトで devicenames == と打ち込みます。 GS> のプロンプトから抜け出るには quit と打ち込みます。 仮に epag というデバイスがあったとしましょう(これは後述の ESC/Page 用のデバイスです)。
/etc/printcap に次のように書いておきます。 これ以外の lp や ps で始まる項目がすでにある場合は # でコメントアウトします。
lp|ps|GS printer:\ :lp=/dev/lp1:\ :sh:\ :mx#0:\ :if=/usr/local/lib/gsf:\ :sd=/var/spool/lpd:\ :lf=/var/spool/lpd/lp-err:
Linux 2.2 では最初のプリンタポートは /dev/lp1 ではなく /dev/lp0 になりましたのでご注意下さい。
次に,/usr/local/lib/gsf というフィルタを作ります(名前は何でもかまいません)。 これは,単にエディタで
#!/bin/sh /usr/local/bin/gs -q -dNOPAUSE -dSAFER -dBATCH -sDEVICE=epag -sPAPERSIZE=a4 -sOutputFile=- -と書いておいて,chmod 755 するだけです。 この epag がさきほどのデバイス名です。 あとは lpc restart all と打ち込めば初期化されます。 もちろん用紙サイズが A4 以外なら -sPAPERSIZE=b5 などと書き直す必要があります(書き直すだけで OK です。 lpc restart all は不要です)。 lpc restart all は単に lpd を再起動するだけですので, 手でやってもかまいません。
実際の印刷は lpr hogehoge.ps のようにして行います。
makefile の311行目の
DEVICE_DEVS1=を
DEVICE_DEVS1=stcolor.devに変えて make clean して make します。
成松さんの ESC/Page 用デバイス gdevepag をインストールしました。 makefile の311行目の
DEVICE_DEVS1=を
DEVICE_DEVS1=epag.devに変え,361行目に
include $(GLSRC)gdevepag.makを追加しました(細かな場所はどこでもかまわないと思います)。
make clean して make すると, arch.h が見つからないと文句を言われたので, gs5.50 ディレクトリの std.h の中の #include "arch.h" を #include "obj/arch.h" に変えました。
リンクはご自由にどうぞ。
松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Last modified: Thu Feb 7 10:12:01 JST 2002