数週間何とかしたいと思っていたことがようやく解決しました。FreeBSDでOKI3400Nの印刷が可能になりましたので、報告します。OKI3400Nに限らず、種々プリンターに応用出来ます。
1.ドライバーのインストール
まず、portからドライバーをインストールします。私のはFreeBSD8.1の未更新portでした。
> cd /usr/ports/print/foo2zjs
ここからルートで作業します。
> su
# make install clean
少し時間がかかります。成功すると、/usr/local/binにドライバーが多数インストールされます。
2. ドライバーを選ぶ
このドライバーの中から適合するものを見つけます。
# ls /usr/local/bin | grep foo
foo2hiperc
foo2hiperc-wrapper
……………
foo2hiperc-wrapperはshell scriptですので、中身をのぞいてみます。
# cat /usr/local/bin/foo2hiperc-wrapper
うん。C3400がありました。間違いなくこのドライバーです。ただ、私のshellはtcshですが、どういうわけか、PATHの記述を書き換えないと、’gs not found’エラーが発生します。
3. Filter script
簡単なフィルタースクリプトを書きます。
#!/bin/sh
# file: /usr/local/libexec/ifoki_foo
/usr/local/bin/foo2hiperc-wrapper -c -p 1 -s 1
コメントを除くとたった2行です。オプションはwrapperのなかに説明されていますので、よく読みましょう。
4. printcap
いよいよ/etc/printcapの設定です。
私の場合、OKI3400Nはランにつながっていて、デフォルトで使いますので、以下の内容になります。
lp|oki|oki3400n:\
:lp=9100@oki:sh:\
:sd=/var/spool/output/oki:lf=/var/log/lpd-errs:\
:if=/usr/local/libexec/ifoki_foo:
lp=9100@okiがランで使う場合のミソです。okiはランにつながっているプリンターのホスト名、9100はポート番号です。プリンターのウエブ設定を見るとポート番号が分かります。直接つながっている場合はもっと簡単ですね。ディレクトリを作るのを忘れないでください。
5. これで印刷出来ます。めでたし。
しかし待てよ。印刷の設定はどうするのか。オプションを書き込んだファイルをフィルタースクリプトに読ませるようにしたらどうかな。それだと、子供とかには印刷の設定が出来ないことになってしまうが、仕方ないか。(次に続く)