Canon Pixus iP4600をFreeBSD鯖につないで設定。
パラレルポートは無いようなのでUSBで接続。
/etc/printcapを設定
iP4600|Canon Pixus iP4600:\ :sd=/var/spool/lpd/iP4600:\ :mx#0:\ :sh:\ :lp=/dev/ulpt0:\ :if=/usr/local/libexec/if-simple:\ :lf=/var/log/lpd-errs:
スプールディレクトリ/var/spool/lpd/iP4600を作っておく。
フィルタの/usr/local/libexec/if-simpleは/usr/share/examples/printing/if-simpleにあるのでそこからコピー。
これでsambaのprintingオプションをbsdにしておけばsambaが自動でプリンタを見つけてくれる。
Windows機からCanonのドライバで印刷すればOK。
[FreeBSD-users-jp 91344] Re: 動作 報告 Canon PIXUS MP810 ( スキャナ・プリンタ複 合機)
を参考にCanonが出しているCUPS用のフィルタでPostScriptプリンタ化。
http://cweb.canon.jp/drv-upd/bj/other.html#linux
から対象機種の機種別パッケージと共通パッケージをとってくる。
rpm2cpio /PATH/TO/cnijfilter-ip4600series-3.00-1.i386.rpm | cpio -ivd rpm2cpio /PATH/TO/cnijfilter-common-3.00-1.i386.rpm | cpio -ivd
でパッケージを展開。
/compat/linux以下にマージする。
cat psfile.ps | /usr/local/bin/gs -q -r600 -dSAFER -dNOPAUSE -dBATCH -sDEVICE=ppmraw -sOutputFile=- - | /compat/linux/usr/local/bin/cifip4600 --imageres 600 --media plain
とすれば印刷出きるので、/usr/local/libexec/psprint.shに
#!/bin/sh /usr/local/bin/gs -q -r600 -dSAFER -dNOPAUSE -dBATCH -sDEVICE=ppmraw -sOutputFile=- - | /compat/linux/usr/local/bin/cifip4600 --imageres 600 --media plain
と書いて、/etc/printcapに
ps|lp|PostScript Printer:\ :sd=/var/spool/lpd/ps:\ :mx#0:\ :sh:\ :lp=/dev/ulpt0:\ :if=/usr/local/libexec/psprint.sh:\ :lf=/var/log/lpd-errs:
のように追記すれば、PostScriptプリンタ化できる。