Linux(CentOS)でlpコマンドで印刷するには
CentOS6.2にてCUIからlpコマンドで印刷する時に日本語が化けたり、レイアウトがずれたりしたのでその際のメモ
ちなみに、プリンタはエプソンのLP-S5000
1.ドライバのダウンロード
Epsonの公式からドライバのダウンロードする。
ファイル名
「Epson-LPS5000-filter-1.0.0.i386.rpm」
「Epson-LPS5000-filter-cups-1.0.0.i386.rpm」
2.足りないものをDL
ghostscript
psutils
bc
※元ネタ「http://blog.on-net.jp/tf/2012/06/epson_printer_libstdc5.html」を参照
3.不足しているライブラリのインストール
「yum whatprovideos」の実施時に不足しているライブラリをインストールする。
4.フィルタースクリプトの修正
cups filterのスクリプトファイル(/usr/bin/pstolps5000.sh)の一部を変更することです。
pstops -q を絶対パス指定に変更します。
line212の
「rotator="" && test "$useRotator" = "on" && rotator=" | pstops -q $p
stops1 $pstops2"」
を
「rotator="" && test "$useRotator" = "on" && rotator=" | /usr/bin/pstops -q $pstops1 $pstops2」に変更します。
※元ネタ「http://nagaremo.blogspot.jp/2012/08/epson-lp-s5000linux.html」を参照
※ただし、Ubuntuに対しての記載のため、alien処理は不要
※cupsサーバーを再起動が必要
※sudo service cups restart
5.テストページの印刷
※VirtualBox上で印刷する場合、ネットワーク設定をNATからブリッジに変更すると動くとのことだけど、特に変更しなくてもよい。
※文字化けした場合はghostscriptの日本語対応する必要がある、その場合は調べてくださいませ。
印刷について
LP(LPR)のコマンドにて、テキストファイルをそのまま印刷した場合、日本語が上手に印刷出来ない。
そのため、テキストファイルをポストスクリプト(.ps)に変換する必要がある。
ポストスクリプトに変換する方法は多数(a2ps,u2ps,e2ps,paps)存在するが、試した結果paps以外うまく行かなかった。
※ポストスクリプトに変換方法については、
※「http://ubulog.blogspot.jp/2008/03/ubuntu.html」を参照するとわかりやすい。
凡例
(paps --landscape --font="Sazanami Gothic" --font=6 --left-margin=10 --right-margin=10 ファイル名 > lp )