2008年3月11日火曜日

ubuntuでコマンドラインから印刷する

 GUI環境がこれだけ整っている今に、わざわざCLI環境から印刷を積極的に行なう、少くともデスクトップユーザー的にはあまりない話なのですが、ちょっと気になったので調べてみました。

 まず、印刷は lpr コマンドを通して行なわれます。例えば、hoge.txt を印刷したいときは、
cat hoge.txt | lpr
などとするわけですね。
 それでまあ日本語の場合、lprに渡す前に postscript に変換して渡さないといけないんですが、この変換ツールがいろいろあり、なかなか大変でした。
 ちなみに以下のコマンドを試すにあたっていろいろいじった環境でテストしたので他の方でうまくいかないかもしれません。プリンタは、 cups-PDF を入れてPDFに出力されたものをadobeの acrobatreader で確認しました。また事前に、
sudo apt-get install gs-cjk-resource cmap-adobe-japan1
して、
sudo dpkg-reconfigure cmap-adobe-japan1
を実行し、全てにチェックを入れてあります。

試した変換コマンド

  • a2ps
  • a2psj
  • u2ps
  • paps
  • e2ps
 ざっと試してみただけでこれだけありました。
 まず、 a2ps ですが、定番です。がこいつは日本語には対応していません。少くても ubuntu では。機能は豊富なんですが。
 次に a2psj は perl で書かれたスクリプトですが、UTF-8には対応していません。euc-jpならOKで綺麗に印刷できましたが、枠線が出ます。
 u2ps は、GNOME のライブラリを用いるタイプで、こいつはとっても綺麗に変換してくれました。名前の通りUTF-8対応です。ですが機能が貧弱で余計な枠線が表示され、消す方法がわかりませんでした。
 paps は画像データとして変換してしまうので、ファイルサイズも大きくなり、またPDFで文字選択ができないなど、お話にもなりませんでした。
 最後に e2ps ですが、名前の通りeuc-jp対応の変換ツールですが、こいつはばっちりでした。そして機能も申し分なく、u2psのような余計な枠線も出ませんでした。

 いろいろ試した結果、どれも帯に短かし、襷に長しでした。u2psは唯一utf-8対応ですが、機能は貧弱すぎでしたし、a2psjは枠線出るし、a2psは日本語無理だし・・・

 最終的には、
nkf -e hoge.txt | e2ps | lpr
のような形になりました。
 これでコマンドラインから綺麗な日本語文書を印刷する環境が整いました。
 コマンドラインから印刷できると、自動でPDFファイルを生成し、メールで送信するとか、いろいろ自動処理するのに都合がいいので、お試しあれ。

0 件のコメント: