Ghostscript on Linux

Ghostscript 6.53 on Linux をご覧ください。 以下は古い内容です。

Ghostscript とは

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 から

をいただいてきます。 なお,これらのフォントは以前のバージョンのフォントへのシンボリックリンクです。 ついでに, ghostscript-5.50jpeg.tar.gz(jpegsrc.v6b.tar.gz へのシンボリックリンク), ghostscript-5.50zlib.tar.gz(zlib-1.1.3.tar.gz へのシンボリックリンク), ghostscript-5.50libpng.tar.gz(libpng-1.0.2.tar.gz へのシンボリックリンク) もいただいてきます。

また,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.psgv tiger.ps で試してみてください。

漢字がうまく表示できるかどうかは

cd /usr/local/src/gs5.50/vflib
gs article9.ps
としてみます(ghostviewgv も同様)。

新しい VFlib2 を使う場合

この場合は 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.ttcmsgothic.ttc があるはずです。 また,VFlib 付属の ttindex を使って msmincho.ttimsgothic.tti を生成し, msmincho.ttcmsgothic.ttc と同じディレクトリに置きます。

Ghostscipt で印刷するには

まず Ghostscript のサポートする出力形式を調べるため gs -h と打ち込みます。あるいは gs を起動して GS> のプロンプトで devicenames == と打ち込みます。 GS> のプロンプトから抜け出るには quit と打ち込みます。 仮に epag というデバイスがあったとしましょう(これは後述の ESC/Page 用のデバイスです)。

/etc/printcap に次のように書いておきます。 これ以外の lpps で始まる項目がすでにある場合は # でコメントアウトします。

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 のようにして行います。

関連リンク


(付録)PM-750C (stcolor) デバイスの組込み

makefile の311行目の

DEVICE_DEVS1=
DEVICE_DEVS1=stcolor.dev
に変えて make clean して make します。

(付録)epag デバイスの組込み

成松さんの 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