たまに a2ps
で日本語を使いたくなるのだが,大抵どうしようもならない.
EUC-JP ならなんとかなるという話もあるが,Debian GNU/Linux sid の a2ps (4.14-1.3) では,以下のような感じだった.
% LANG=ja_JP.eucjp date | nkf
2015年 1月 26日 月曜日 19:35:03 JST
% LANG=ja_JP.eucjp date | LANG=ja_JP.eucjp a2ps --encoding=euc-jp -o - -1 | grep JST
(2015\257 1\356 26\374 \356\313\374 19:35:03 JST) p n
どうも2バイト文字の1バイト目が無くなってしまうらしい.ということで,2バイト文字の各バイトに無駄なバイトを付けてみる (やるきなしワンライナー).
% LANG=ja_JP.eucjp date | ruby -e 'print STDIN.read.unpack("C*").map{|i| i>128 ? [-1,i] : i}.flatten.pack("C*")' | LANG=ja_JP.eucjp a2ps --encoding=euc-jp -o - -1 | grep JST
(2015\307\257 1\267\356 26\306\374 \267\356\315\313\306\374 19:36:36 JST) p n
これで生成される postscript (.ps) は gs
(evince
とか)で表示可能.この手の postscript は,あとは ps2pdf
にさえ通ってしまえばなんとかなるのだが,今回はここで挫折.以前は (2015\307\257) p n
を (2015) p (\307\257) p n
とかみたいに分解すれば ps2pdf
に通ったような気がするのだが,手元の gs
(9.06~dfsg-2) ではダメっぽい.
ということで e2ps
を導入.入力は EUC (UTF-8 未サポート) で,landscape/portrate や 2-in 等にも対応.ただし a2ps
(や enscript; こちらも日本語NG) にあるような style sheet サポートは無し.
というか,style sheet を諦めるのであれば,ブラウザ (google-chrome) でテキストファイルを開いて CUPS で PDF に印刷するか,Save to Google Drive で Google Drive に PDF を送る,というのでいいような気がしてきた.