プリントサーバを介して印刷する (BJ S6300の場合)
Canon の BJ S6300 をFreeBSDで使えるようにしました。プリンタは Corega のプリントサーバ、 corega PServer に繋がっているので、これを介して印刷するように設定します。
まず、bjfilters6300を入れるため、Linuxバイナリ互換機能を追加します。RHL 6.1ベースと7.1ベースがありますが、7.1の方をインストールしてください。作業手順は以下の通りです。
- cd /usr/ports/emulators/linux_base
- make;make install;make clean
- /etc/rc.conf をエディタで開く
- linux_enable="YES" を追加
また、linux_base-6を既にインストールしていて、linux_baseがうまくインストールできない場合は pkg_info で該当するパッケージを探し、 pkg_delete パッケージ名 で削除してください。それでも駄目なら、/compat/linuxを削除(安全のため名前の変更の方が無難だと思いますが)すればとりあえず何とかなります。全く持って美しくないですけれど。
次に、GhostScriptとBJ S6300用のフィルタを入れます。手順は以下の通り。
- cd /usr/ports/print/ghostscript-gnu
- make;make install;make clean
- cd /usr/ports/print/bjfilters6300
- make;make install;make clean
そして、各種設定を行います。まず、/etc/printcap に以下の文字列を追加します。
lp:\
:mx#0:\
:sh:\
:sd=/var/spool/lpd/local/:\
:lp=/dev/null:\
:if=/usr/local/libexec/bjs6300ps:
remote:\
:mx#0:\
:sh:\
:sd=/var/spool/lpd/remote/:\
:rw:\
:rm=ホスト名:\
:rp=ポート名:
rmに書くホスト名はPServerのホスト名、ポート名はPServerで設定したポート名です。次に、スプール用のディレクトリを作ります。 /var/spool/lpd/local/ と /var/spool/lpd/remote/ を作ってください。そして、ifで指定したフィルタ用スクリプトを作成します。/usr/local/libexec/bjs6300psを作成し、以下の内容を参考に設定してください。
#!/bin/sh quality=3 papersize=a4 printer=BJS6300 resolution=360 /usr/local/bin/gs -q -dBATCH -r$resolution -dNOPROMPT -dNOPAUSE -dSAFER \ -sPAPERSIZE=$papersize -sDEVICE=bmp16m -sOutputFile=/dev/fd/3 - 3>&1 >&2 -|\ /usr/local/bin/bjfilter --model $printer --papersize $papersize --quality $quality|\ lpr -Premote
最後に、プリンタデーモンを起動します。 /usr/sbin/lpd と入力して起動してください。次回起動時からも自動的に起動したい場合は、/etc/rc.confに lpd_enable="YES" を追加してください。