Windows 用 Ghostscript 7.07 の環境設定

Published: 2021-08-22 15:15 +0900 by Chirimen

Windows で Ghostscript 7.07 をインストールして日本語を表示させるための環境を構築する手順のまとめ。 ファイルの入手方法から設定、動作確認まで。

はじめに

Ghostscript 7.07 は 2003 年頃に発表された古いソフトである。 Ghostscript は 9 系列が 2010 年頃から利用でき、 現在は 9.54 となっている。 ところが、9.54 でも 7.07 の時点では利用できていた日本語縦書き機能の一部が 使えない ままとなっており、 用途によっては 7.07 の動作環境が必要とされる場合がある。

しかし、Ghostscript 7.07 はすでに開発が終了し使用が非推奨となっているため、 Windows 用の実行ファイルや、その他の動作に必要なファイルなどは入手自体が困難となってきているし、 当時の解説文書なども、リンクの多くが無効なものとなっている。 利用できるフォントとその設定方法についても、 そのままでは使えなくなってしまっているものが多い。

幸いにして、現時点でもある程度 Ghostscript 7.07 の実行環境の構築することができたので、 忘備録としてまとめを残すことにした。

参考

ダウンロード

Windows 用 Ghostscript 本体

Windows 用 Ghostscript 7.07 は入手が困難になってきているが、 角藤版 Ghojstscript である gs707w32full.zipring server/pub/text/TeX/ptex-win32/gs より入手できる (2021.8.22)。

CMap リソース

GitHub のリポジトリ cmap-resource から、CMap リソースをダウンロードできる。

上記リポジトリのリリースページにある現時点 (2021.8.22) の最新版は cmap-resources-20190730.zip である。

TrueType フォント

OSDN のページ efont から さざなみフォント をダウンロードできる

さざなみフォントは必須ではないが、 後述するように Ghostscript 7 で利用可能な TrueType フォントは限られているため、 動作確認などのために確保しておくことが望ましい。

インストール

Ghostscript のインストール

ダウンロードした gs707w32full.zip を展開し、 setupgs.exe を実行する。

デフォルトでは C:\gs 下にインストールされる。

CMap ファイルの設置

フォルダ C:\gs\gs7.07\Resource\CMap を作成し、 ダウンロードした CMap リソースの zip ファイルを展開してできる Adobe-Identity-0, Adobe-Japan1-7 などのフォルダの下にある CMap フォルダの中身をすべて C:\gs\gs7.07\Resource\CMap にコピーする。

元の各 CMap フォルダの中身が統合された状態になる。

CMap

TrueType フォント (さざなみフォント) の設置

コピー先フォルダ

gs の検索パスに含まれているフォルダのいずれかに、さざなみフォント (sazanami-mincho.ttf, sazanami-gothic.ttf) をコピーする。 または、任意のフォルダにフォントファイルを設置してフォルダを環境変数 GS_LIB で指定する検索パスに追加するか、 フォントの指定時に絶対パスを指定するのでもよい。

検索パスには C:\Windows\Fonts が含まれているので、 Windows の 「すべてのユーザに対してフォントをインストール」 でインストールすれば、ファイル名のみでの指定が可能になる。

gs の検索パスは gswin32.exe, gswin32c.exe のオプション -h で 検索パスを確認できる。 GS_LIB で指定したフォルダは、カレントフォルダ . の次に挿入される。

PS D:\test> C:\gs\gs7.07\bin\gswin32c.exe  -h
GNU Ghostscript 7.07 (2003-05-17)
Copyright (C) 2003 artofcode LLC, Benicia, CA.  All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
(略)
Search path:
   . ; C:\gs\gs7.07\lib ; C:\gs\gs7.07\kanji ; C:\gs\fonts ;
   c:/gs/gs7.07/lib ; c:/gs/gs7.07/kanji ; c:/gs/fonts ; c:/winnt/fonts ;
   c:/usr/sysfonts ; c:/windows/fonts ; c:/winnt35/fonts
(略)

CIDFnmap の設定

c:\gs\gs7.07\lib にある CIDFnmap に, 明朝体 (Ryumin-Light) とゴシック体 (GothicBBB-Medium) の定義を次のように記述する。

/Ryumin-Light	    (sazanami-mincho.ttf) ;
/GothicBBB-Medium   (sazanami-gothic.ttf) ;

日本語を使用している Postscript ファイルのサンプルの多くが Ryumin-Light と GothicBBB-Medium を使用しているためであるが、 別の名前での定義を追加してもよい。

Ghostscript の実行と確認

日本語フォントの表示は、gs 付属のサンプル article9.ps などで確認することができる。 articke.ps は C:\gs\gs7.07\kanji にあり、 C:\gs\gs7.07\kanji は gs の検索パスに含まれているので、 単に article.ps として読み込ませることができる。

PS D:\test> C:\gs\gs7.07\bin\gswin32c.exe -dBATCH -dNOPAUSE -sDEVICE=pngalpha -r150 -sOutputFile='article9.png' article9.ps

article.png

さざなみフォントが使用されていることが確認できる。 文字間隔がおかしかったり下にはみ出しているのは article9.ps 側の問題である。

オプション -dWINKANJI を指定すると、 日本語フォントのレンダリングに Win32API を用いるようになる。 使用すると明朝体は MS明朝 で、ゴシック体は MSゴシックで レンダリングする結果となるが、 レンダリングに使用するフォントを変更できるのかどうかはわからなかった。

参考までに、-dWINKANJI を指定した場合の結果を次に示す。 CIDFnmap はさざなみフォント指定のままにしている。

PS D:\test> C:\gs\gs7.07\bin\gswin32c.exe -dWINKANJI -dBATCH -dNOPAUSE -sDEVICE=pngalpha -r150 -sOutputFile='article9.png' article9.ps

article.png

CIDFnmap の設定と無関係に MS明朝, MSゴシック でレンダリングされていることが確認できる。

Ghostscript 7.07 で利用可能な TrueType フォント

CIDFnmap の記載例には msmincho.ttc や msgothic.ttc が示されており、 少なくとも gs7.07 が公開された当時の環境では msmincho.ttc や msgothic.ttc が利用できていたものと思われる。

しかし、Windows 10 付属の msmincho.ttc, msgothic.ttc を指定すると次のようなエラーになって使用できない。 Windows 10 付属の TrueType フォントは駄目なようである。

GNU Ghostscript 7.07 (2003-05-17)
Copyright (C) 2003 artofcode LLC, Benicia, CA.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefinedresource in --findresource--
Operand stack:
   48   GothicBBB-Medium-V   Font   GothicBBB-Medium-V   (GothicBBB-Medium-V)   16   GothicBBB-Medium   V   V   --dict:0/10(G)--   GothicBBB-Medium   false   GothicBBB-Medium   GothicBBB-Medium   Auto   --nostringval--   92166   --nostringval--   CMap   92166   CMap   92166
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   .runexec2   --nostringval--   
--nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   2   3   %oparray_pop   3   3   %oparray_pop   --nostringval-- 
  --nostringval--   18   6   %oparray_pop   --nostringval--   21   7   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1068/1123(ro)(G)--   --dict:0/20(G)--   --dict:82/200(L)--   --dict:17/17(ro)(G)--   --dict:28/50(ro)(G)--   --dict:12/40(G)--   --dict:0/10(L)--   --dict:16/24(ro)(G)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 1344
GNU Ghostscript 7.07: Unrecoverable error, exit code 1

IPAフォントは現行のもの (ver.003.03) は駄目だったが、 手元に残っていた Ver.001 の IPA明朝、IPAゴシックであれば使用可能だった。 ただし、Ver.001 のIPAフォントの入手方法はわからなかった。

手持ちの古い市販 TrueType フォント (ヒラギノフォントTrueType ver4.1) は使えたので 新し目の TrueType フォントが使えないということかもしれない。

時期的には JIS X 0213 対応の前後だと思うが、関係は不明である。

おわりに

Ghostscript 7.07 で日本語フォントを取り扱うための情報の多くがまだ残っているが、 実際にはファイルの入手が不能、または困難になっているため、 現時点で利用可能なものとしての情報を確認してまとめておく必要があった。

また、当時の主要なニーズ (ベクターフォントでなんとか日本語のテキストが読めればよい) に対して書かれた文書を読むと、 今とは前提や目的が大きく異なっているので、 あらためてまとめ直すことにも意義があると思われる。

自分の知識不足のため、深く掘り下げた調査を行うことはできなかったが、 現時点のマイルストーンとしてこの文書を残しておく。

Share

Latest Posts

Django Rest Framework のテストでハマったこと (4)

Django で既存データベースから inspectdb で作成した models.my は managed = False となっている。 そのままだと test を実行したときに、 テスト用データベースにモデルに対応したテーブルが作成されない。

Django Rest Framework のテストでハマったこと (3)

factory_boy の Faker() で、 取得した値を加工してから使用する話。

Django Rest Framework のテストでハマったこと (2)

Django のテスト用データを作成するのによく用いられる factory_boy で locale を指定して日本語圏用のデータを利用する話。