FreeBSD QandA 1209

FreeBSD QandA

Q. リモートプリンタで PostScript ファイルを印刷したいのですが、ローカ
   ルホスト側で Ghostscript にフィルタを使って通すと PostScript スクリプ
   トが印字されてしまいます。

A. 以下のことを確認して下さい。

   1. /etc/printcap の記述は正しいですか?

   FreeBSDのバージョンが古過ぎませんか?
   現在のバージョン (2.2.8R で確認) では、リモートプリンタの設定 
   ("rm=リモートホスト名") がしてあってもローカル側でのフィルタの設定 
   ("if=フィルタ") は有効ですが、古いバージョンでは "rm" の設定があると 
   "if" の設定は無効になってしまいます。

   プリンタスプール ("sd") が他のエントリと重複していませんか?
   プリンタスプールディレクトリは各エントリ毎に別個にして下さい。

   FreeBSD のバージョンを上げて見て下さい。

   古いバージョンで対応させる場合は [FreeBSD-users-jp 14570] を参考に
   /etc/printcap を書き直して下さい。


   2. フィルタの記述は正しいですか?

   Ghostscript をローカルホスト側で通す場合、フィルタが正しいことを確認し
   て下さい。とくに、プリンタのデバイス名が、使用する Ghostscript に対応
   しているか調べて下さい。("gs -h" コマンドで対応デバイス一覧が出てきま
   す。)

   できれば、使用するプリンタをまずローカルに接続し、フィルタを通して
   PostScript ファイルが印刷できることを確かめて下さい。


   設定例:

   リモートホスト "rhost" につながるプリンタ "rps" からプリントする。
   プリンタのデバイスは "epag" を使用する。
   フィルタは "/usr/local/libexec/psfilter.sh" とする。

   ------ /etc/printcap --------
   r-ps|remote printer with gs:\          
           :lp=:rm=rhost:rp=rps:\
           :sd=/var/spool/output/rps:\ 
           :if=/usr/local/libexec/psfilter.sh:\
           :lf=/var/log/lpd-errs:\
           :mx#0:sh:
   ----------------------------------

   -----/usr/local/libexec/psfilter.sh ------------
   #!/bin/sh
   /usr/local/bin/gs -q -dNOPAUSE -sDEVICE=epag -sOutputFile=- - quit.ps
   -----------------------------------------------

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。