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.zip が ring 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 フォルダの中身が統合された状態になる。
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
さざなみフォントが使用されていることが確認できる。 文字間隔がおかしかったり下にはみ出しているのは 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
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 で日本語フォントを取り扱うための情報の多くがまだ残っているが、 実際にはファイルの入手が不能、または困難になっているため、 現時点で利用可能なものとしての情報を確認してまとめておく必要があった。
また、当時の主要なニーズ (ベクターフォントでなんとか日本語のテキストが読めればよい) に対して書かれた文書を読むと、 今とは前提や目的が大きく異なっているので、 あらためてまとめ直すことにも意義があると思われる。
自分の知識不足のため、深く掘り下げた調査を行うことはできなかったが、 現時点のマイルストーンとしてこの文書を残しておく。