Sorry. Written only in Japanese.


gs601 (ghostscript のバージョン 6.01 ) に gdevmjc-0.8 ドライバー(EPSONプリンター用)を組み込む

0. はじめに

gdevmjc-0.8 の入った gs(v5.10)を使って EPSON プリンター MJ-910CやMJ-6000Cでプリントアウトをしていましたが、 最近のPDFファイルを印刷しようとするとしばしば失敗しました。 (Powerpoint で作った PDF ファイルを渡されてしまった。) どうやら、PDFの方が新しくて、 gs のバージョンを6.01にあげなければいけないらしいです。 ところが、日本語PDFに対応したgs6.01は正式なものではないらしく、 ましてや gdevmjc ドライバーは対応されていないようでした。 そこで、「日本語PDFに対応したgs6.01」にむりやり gdevmjc ドライバーを 組み込んでみました。 (EPSON プリンター MC-910CやMJ-6000Cでプリントアウトしたいだけなら、 他のドライバーでもできるようですが、 gdevmjc での色合いが好きだったもので...) なお、私は Fortran-speaker (と言いながらFortranもかたことですが)であり、 C言語を話せません。 以下の修正は全て他のファイルからの推測で、 これで本当にいいのかどうかわかりません。 ちなみに私の環境は Linux (debian potato)です。

1. 用意するもの

(a) gs-6.01

ghostscript-6.01.tar.gz
ghostscript-6.01jpeg.tar.gz
ghostscript-6.01libpng.tar.gz
ghostscript-6.01zlib.tar.gz
ghostscript-fonts-other-6.0.tar.gz
ghostscript-fonts-std-6.0.tar.gz
これらのありかは例えば http://www.ms.u-tokyo.ac.jp/~ainaba/install_memo/gs.html を参照。

(b) gs-6.01の日本語PDFパッチ

gs6.01-jpdf-exp.patch.gz
これは http://www.sat.t.u-tokyo.ac.jp/~hideyuki/Ghostscript/gs6.01-jpdf-exp.patch.gz を参照。 なお、普通は(どうしてもgdevmjcを組み込みたいという変な人以外は) このサイトの説明に沿って作業すればよい。

(c) gdevmjc-0.8ドライバー

例えば http://sea3.ori.u-tokyo.ac.jp/FTP/pub/suzuki/ に
gdevmjc-0.8.tar.gz
の形で置いてある。

2. make の準備

(a) まず、通常の日本語PDFパッチが当たったgs-6.01の用意

ghostscript-6.01.tar.gz
ghostscript-6.01jpeg.tar.gz
ghostscript-6.01libpng.tar.gz
ghostscript-6.01zlib.tar.gz
ghostscript-fonts-other-6.0.tar.gz
ghostscript-fonts-std-6.0.tar.gz
gs6.01-jpdf-exp.patch
を、とあるディレクトリーに用意して、
> zcat ghostscript-6.01.tar.gz | tar xvf -
> cd gs6.01
gs6.01> zcat ../ghostscript-6.01jpeg.tar.gz | tar xvf -
gs6.01> zcat ../ghostscript-6.01libpng.tar.gz | tar xvf -
gs6.01> zcat ../ghostscript-6.01zlib.tar.gz | tar xvf -
gs6.01> ln -s jpeg-6b jpeg
gs6.01> ln -s libpng-1.0.5 libpng
gs6.01> ln -s zlib-1.1.3 zlib
gs6.01> patch -p1 < ../gs6.01-jpdf-exp.patch

(b) gdevmjc-0.8 の組み込み

gdevmjc-0.8 を展開しておいて、中の*.c (gdevmjc.c mjbksep.c mjespdtm.c mjgrnsp.c mjhtocmy.c mjvtbl.c mjbarrie.c mjespdtc.c mjespdty.c mjgrnsp2.c mjmtx2.c) を全てsrc のディレクトリーにコピー
gs6.01> cd src
gs6.01/src> cp ../../gdevmjc-0.8/*.c .
gdevmjc.c の 319行目当たりの
  const float _ds *m;
  const float *m = (float *) 0;
に変更する。(私にはなぜだかわからない。gdevcdj.c のカンニング。)

dev.mak の最後に

##
## MJ-700V2C driver 
#
# Supports MJ-700V2C, MJ-5000C, MJ-900C, MJ-800C, MJ-500C
#
##
#
#  Append this file to Makefile
#
##
MJCSRC = $(GLSRC)gdevmjc.c $(GLSRC)mjmtx2.c $(GLSRC)mjbksep.c \
	$(GLSRC)mjhtocmy.c $(GLSRC)mjvtbl.c \
	$(GLSRC)mjgrnsp.c $(GLSRC)mjgrnsp2.c $(GLSRC)mjespdtc.c \
	$(GLSRC)mjespdtm.c $(GLSRC)mjespdty.c $(GLSRC)mjbarrie.c

mj700v2c_=$(DD)gdevmjc.$(OBJ) $(HPPCL)

# To make A4 paper the default, change the second line below this to
$(GLOBJ)gdevmjc.$(OBJ): $(MJCSRC) $(PDEVH) $(gdevpcl_h)
	$(GLCC)$(GLO_)gdevmjc.$(OBJ) $(C_) -DA4 $(GLSRC)gdevmjc.c

$(GLOBJ)gdevtfnx.$(OBJ) : $(GLSRC)gdevtfnx.c $(PDEVH) $(gdevtifs_h)
	$(GLCC) $(GLO_)gdevtfnx.$(OBJ) $(C_) $(GLSRC)gdevtfnx.c

$(DD)mjc180.dev: $(mj700v2c_)
	$(SETPDEV) $(DD)mjc180 $(mj700v2c_)
$(DD)mjc360.dev: $(mj700v2c_)
	$(SETPDEV) $(DD)mjc360 $(mj700v2c_)
$(DD)mjc720.dev: $(mj700v2c_)
	$(SETPDEV) $(DD)mjc720 $(mj700v2c_)
$(DD)mj500c.dev: $(mj700v2c_)
	$(SETPDEV) $(DD)mj500c $(mj700v2c_)
を加える。(gdevmjc-0.8 の中の gdevmjc.mak を修正したもの)

(c) Makefile の選択

gs6.01/src> cd ..
gs6.01> cp src/unix-gcc.mak Makefile
私の環境では、そのあと Makefile の中の
XLIBDIRS=-L/usr/X11/lib
XLIBDIRS=-L/usr/X11R6/lib
DEVICE_DEVS16=
DEVICE_DEVS16=$(DD)mjc180.dev $(DD)mjc360.dev $(DD)mjc720.dev $(DD)mj500c.dev
VFLIBS=VFlib2 ttf
VFLIBS=VFlib2
にした。 (ttf が通らなかったのでとりあえずこうしたが、これはちょっとまずいかも。)

3. コンパイル

gs6.01> make

4. インストール

gs6.01> make install
gs6.01> cd ..
> zcat ghostscript-fonts-std-6.0.tar.gz | (cd /usr/local/share/ghostscript ; tar xvf - )
> zcat ghostscript-fonts-other-6.0.tar.gz | (cd /usr/local/share/ghostscript ; tar xvf - )
で作業終了のはず。

2001年 7月28日

上に戻る