2019年6月17日月曜日

UTF-8で書かれた日本語テキスト, テキストファイルをPostScriptに変換する方法(2019/11)

gnome-u2ps があったのですが開発が停滞しており、debianからはパッケージがREMOVEDになってしまい、その後……(2019/11/4 gnome-u2psに関する追記あり)

・gedit からファイルに印刷する

geditでテキストファイルを表示してファイルに印刷する、という方法があります。 CLI操作が苦手って方がよくやるようです。 psもpdfも作れるようですので、重宝している方も結構いらっしゃるのかも?

・paps (+nkf)

UTF-8で書かれたテキストファイルを pango ライブラリ を用いてレンダリングし、 PostScriptファイルにするフィルタです。 debian のパッケージにはUTF-8で書かれた多言語テキストファイルの例(/usr/share/doc/paps/examples/small-hello.utf8)があり、これを変換してみると便利さがよく分かります。

sample-hello.utf8 には日本語の半角カナが含まれるのですが、これがきちんと半角カナのまま変換されるのは、なかなか強力ですね。
レンダリングをpapsがやり、元となる文字列が何であったかという情報を含みません。そのため、ps2txtでテキスト部分だけ引っ張り出す、みたいなことも出来ません。pdfもにおいても、本文をpdfリーダーで取り出せないものが出来ます。

印字フォントを変更するには、fontconfig で認識しているものを使いますが、文字サイズの変更だけでも受け付けるようです。デフォルトは "Monospace 12"となっていますが、実体はシステムによって微妙に違うでしょう。

日本語のテキストファイルを印字する場合は nkf を併用します。nkf --guessを使って UTF-8(LF)などと返ってくるなら、そのまま変換すればよいですが、それ以外の場合はパイプを使ってしまえばよいでしょう。

DebianにもUbuntuにもパッケージがあり、これが一番安定しているようです。RHELのナレッジベースでも紹介されていますね。


・nkf + e2ps

 e2psにはバグが多いのですが、それでもdebianパッケージなどに入っていることから利用者が若干いらっしゃるようです。e2ps は EUC-JP を受け付けて PostScript を作るものなのでnkf -edなどとした変換が必要になります。

・nkf + a2ps-j (Perl版a2ps)

 日本語テキストファイルをPostScriptにするプログラムには他にも a2ps-j (a2ps perl版) がありますが、perl 4時代のスクリプトなので、MacPortsや各種BSDパッケージなどではパッチを当てたり、色々対応しながらやってらっしゃる方もおられるようです。

https://svnweb.freebsd.org/ports/head/japanese/a2ps/
https://www.uconst.org/blog/archives/437

 個人的に注目しているのが、a2ps-j をUTF-8対応させる、以下のブログのパッチです。開発者さんにおかれましては、このパッチのライセンスを再利用しやすいものに設定していただけますと、各OSでのパッケージとして採用が進むと思いますので、何卒よろしくお願いしたいです。

a2ps Japanese UTF-8 patch (日本語 UTF-8 パッチ)
http://zyushimatsu.cocolog-nifty.com/blog/2014/12/a2ps-japanese-u.html

 なお、GNU a2ps や GNU enscript は日本語がダメそうなままです。つらい。

 (2019/11/4) コメントいただいておりました。
gnome-u2ps が gitlab で復活しているようです。
https://gitlab.com/gnomify/u2ps

で、この記事では紹介していませんでしたが、実は u2ps には数年前に同じ名前で別の人が作ったものがあるんです。
https://gitlab.com/arsv/u2ps

そう考えると、gnome-u2ps は u2ps-gtk とかにしたほうがいいような気もしますね。(ngraph-gtk 的なネーミングセンス……)

2 件のコメント:

g さんのコメント...
このコメントは投稿者によって削除されました。
Unknown さんのコメント...

> 開発者さんにおかれましては、このパッチのライセンスを再利用しやすいものに設定していただけますと、各OSでのパッケージとして採用が進むと思いますので、何卒よろしくお願いしたいです。

はるか昔の記事に対するコメントで恐縮ですが、github にパッチを再掲し自由に利用していただけるようにコメントしました。
よろしくお願いいたします。

a2ps Japanese UTF-8 patch
https://github.com/r0/a2ps-utf8