前回、cupsを使ったHP PSCシリーズのプリンタの設定をしました。

色々使用していると、firefoxからの印刷では日本語が印刷できるのですが、
Latexのdvi2psやa2psでは日本語が入ると印刷できませんでした。
(a2psに関してはまた記事にしますね)

というわけで、FreeBSDネイティブのlpdを使った印刷を特集します。

キーワード:HP PSClpd,dvi2ps,a2ps,a2ps-j,ghostscript,ulpt0,lpd_enable,printcap,cdjcolor,gs





1. ghostscript、a2psの導入


プリンタドライバのghostscript,テキストをpsファイルにコンバートするa2psをインストールします。
日本語用があるので、

#pkg_add -rv ja-ghostscript-gnu-jpnfont
#pkg_add -rv ja-a2ps


まずは、電源を入れてUSBの端子を挿入します。(当然ですが(^_^;))

2. デバイスの確認


認識されたかどうか確認するために、

$dmesg|grep ulpt0


結果は、

ulpt0: HP PSC 1500 series, rev 2.00/1.00, addr 2, iclass 255/204
ulpt0: using bi-directional mode


と表示されました。

3. デーモンの起動・終了


まずは、cupsのデーモンを終了させます。

# /usr/local/etc/rc.d/cupsd.sh stop


念のため、プロセスが止まっているか確認します。

$ ps aux|grep cups

して、デーモンのプロセスが表示されなければOKです。


lpdのデーモンを起動させます。

#/etc/rc.d/lpd start


念のため、lpdが起動しているか確認。

$ps aux|grep lpd


そのまま電源を落とさないのなら、
このままでもいいですが、
起動時にlpdを立ち上げるには、/etc/rc.confを以下の内容を追加します


#cupsd_enable="YES"(コメントアウトします)
lpd_enable="YES"


4.プリンタとの接続を調べる


プリンタからとりあえず、プレインテキストの文字が送れるか確認します。

$lptest > /dev/ulpt0


見事印刷されたらプリンタの接続はOKです。

5. /etc/printcapの設定


/etc/printcapの設定をします。

僕の設定では、こんな感じ。

lp|local line printer|HP PSC 1510:\
#上の行は他の名前でも良い。
#ただし、lpを入れること(標準のプリンタの指定になる)
:sh:\#ヘッダーページの印刷の禁止
:lp=/dev/ulpt0:\#デバイス名
:sd=/var/spool/output/lpd:\#スプールディレクトリ
:lf=/var/log/lpd-errs:\#エラーログの場所
:if=/home/myusername/bin/printfilter:\
#フィルターの場所


詳しくは、こちらを参照。

6. フィルターの導入


上のフィルターの場所として設定した場所にフィルターを作成します。

こんな感じ。

#!/bin/sh
DEVICE=cdjcolor

/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=${DEVICE} -sOutputFile=- - quit.ps


もし、HP PSC1510以外のプリンタを使っているなら、
DEVICE=cdjcolorのcdjcolorの部分を書き換えて下さい。

詳しくはこちら

今のフィルターのファイルに実行権限を与えます。

#chmod +x /home/myusername/bin/printfilter


なお、フィルターの場所はどこでもOKです。
ただし、当然ですが/etc/printcapでの指定と実際のフィルターの場所が同じでないといけません。
クリーンインストールの事を考えると、
バックアップを意識しやすい、自分やrootのディレクトリの中がいいでしょう。

7. 印刷


では、実際に印刷しましょう。

lpr /usr/local/share/ghostscript/7.07/examples/tiger.ps

実際の印刷は、こんな風になりました?

tiger
あ、この写真は、xvでプリントスクリーンしましたけど。









念のため、日本語も印刷できるか確認です。

適当にエディタでテキストファイル(とりあえず、ファイル名test.txt)を作って下さい。

そして、以下を実行して印刷。

#a2ps-j test.txt > test.ps
#lpr test.ps


印刷できましたか?

できないとかghostscriptって何?という言う人は、上の手順を確認することはもちろんですが、
FreeBSDの日本サイトのQandAの印刷関係を参考にしてください。
このリンク先のリンクもたどってみて下さいネ。

もちろん、コメントでの質問もOKですよ。
答えられる範囲でお答えします。

今回の内容は、下の本を参照しました。
FreeBSDを入れた人は、この本を買うと、
一通りのデスクトップ環境、サーバー環境が構築できます。
お勧めのFreeBSDの書籍