a2ps から ps2pdf まで

ソースを全文印刷してレポートに添付という、嫌がらせ的レポートを印刷するとき、流石に notepad じゃ味気ないので a2ps くらいして「がんばったぞ」感を演出しようとするものの、日本語文字化けで残念な感じ。なぜか、研究室のサーバー群に日本語対応版 a2ps が入っていたので事なきを得たが、自前で用意しときましょうというはなし。ホントは、印刷のきれいな xyzzy 辺りを使えばいいんだけど。たくさんはまって、たくさん時間を無駄にした。


どうせ普段 windows なので、Cygwin に入れる。いろいろ探して、結局ハングアップの日々に行き着く。ここの方法をそのまま実行すると、どうにかこうにかうまくいく。とりあえず、全部引用。

 Cygwinインストーラで gettext-devel と file をインストールする。 
 Cygwinインストーラで a2ps-4.13-1 のソースをインストールする。これによって、/usr/src/ に a2ps-4.13.tar.gz, a2ps-4.13-1.patch, a2ps-4.13-1.sh の 3ファイルがコピーされる。 
 a2ps に Cygwin 用のパッチを当てる。
$ cd /usr/src
$ ./a2ps-4.13-1.sh prep 
$ patch -p0 < a2ps-4.13-ja_nls.patch 
$ patch -p0 < a2ps-4.13-kt.patch
$ ./a2ps-4.13-1.sh conf 
$ ./a2ps-4.13-1.sh build 
$ strip a2ps-4.13/src/a2ps.exe
$ strip a2ps-4.13/contrib/fixnt.exe 
$ cd a2ps-4.13
$ make install

ビルドはこれでおわり。コンパイルに時間がかかる。

gsview はデフォルトでは日本語がでない。失敗してるのかと思った。例のサイトから引用。

GSView で、
Options ---> Advanced Configure
Ghostscript Options: 編集ボックスに
-dWINKANJI
と記述しておく

AFPL の gs は -dWINKANJI をつけると、日本語を WINAPI 経由で表示してくれるそうだ。

ps2pdf も -dWINKANJI を渡すと、日本語を含んだ ps を変換できる。たぶん、日本語フォントの埋め込みを行わないんだろうな。あの辺はどうなってるのか、よくわからん。

で、テキストから PDF 生成まではこんな感じ。ps2pdf のデフォルト用紙サイズが Letter っぽいので、用紙サイズを指定しないとはみ出る。あと、インクジェット印刷用に、マージンを大きく取るときは、a2ps で -M A4dj にする、というのは以前書いた

$ a2ps -M A4 -o aiueo.ps aiueo.txt
$ ps2pdf -dWINKANJI -sPAPERSIZE=a4 aiueo.ps

めんどくさいね。そういえば、生成された PDF には作成者のアカウント名が入るんだよね。どの段階のかはしらないけど。これが、blind review のときにもにゃもにゃというはなしが・・・。