ひとりごと

新しい記事:[523]  古い記事:[521] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2002/10/17 (木)

・ gsとDeskjet

PSプリンタで遊んだついでに、カラーの場合はインクジェットから出せるように /etc/printcap にエントリとフィルタを追加。ドキュメントを読んでいて初めて気づいたのですが、うちのHP Deskjet970Cxiを使う場合は 'ijs' というデバイスを使うのだそうです。これまで laserjet とかcdj550とかを使っていました(^^;。

で、ijsで出力してみると、案外綺麗なのです。使い方は例えばDJ970の場合、

gs -sDEVICE=ijs -sIjsServer=hpijs -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="DESKJET 970" -r300x300 ・・・・
のように呪文がとても長いのですが、出力結果はなかなか良好でWindowsのプリンタドライバと比較して色補正がされていない以外は特に見劣りしません。てことで、フィルタに書いておくと
% djpeg じぇーぺぐふぁいる | pnmtops | lpr -P プリンタ名
で用紙一杯にでてきてくれるので、写真とかの印刷にはなかなか便利です。

ちなみに、gsのドライバはそれぞれ出来の良いものも多いのですが、hpijsは© Hewlett-Packard Companyという点で最強かもしれません(^^;

ところで、私がポストスクリプトプリンタにひかれる最大の理由は『フィルタやprintcapの書き方がわからない(^^;)』からなんです。例えば、HPのプリンタに出力する為に書いたフィルタは

#!/bin/sh
TMP=/tmp/gsf$$
gs -sDEVICE=・・・・ -dNOPAUSE -sOutputFile=$TMP \
-q - quit.ps >/dev/null 2>&1 && cat $TMP
rm $TMP
てな具合なのですが、人様のフィルタはたいがい
#!/bin/sh
gs -sDEVICE=・・・ -dNOPAUSE -sOutputFile=- -q -
です。私が試すと、『nページ目』とかのプリンタ表示窓に出てくるメッセージがstdoutに出力されるのでおかしな結果になってしまうのです。どうして人様の環境では後者で動くのかさっぱりわかりません。
また、会社のWindows2000で 'TCP/IP Print Server' を走らせてFreeBSDからLIPS4プリンタをPSプリンタとして使おうとすると、『フィルタを通したものを lpr -l で印刷』するとうまくいくのに『cat PS | フィルタ | lpr』ではぜんぜん動いてくれないので、試行錯誤の上
[printcap]
ps|PostScriptPrinter:\
:lp=/dev/null:sd=/var/spool/lpd/ps:lf=/var/log/lpd-errs:\
:sh::mx#0:if=/usr/local/bin/gsf:mx#0:

[/usr/local/bin/gsf]
#!/bin/sh
TMP=/tmp/gsf$$
/usr/local/bin/gs -sDEVICE=lips4 -sOutputFile=$TMP -dNOPAUSE -q - >/dev/null 2>&1
/usr/local/bin/smbclient //SMBホスト/プリンタ名 -E -N -U guest -c "print $TMP" >/dev/null 2>&1
rm $TMP
としています。どうしてこうしないと動かないのかもさっぱりわかりません。

# 『難しい事を理解しようとしないで使おうとする』のが最大の敗因なのですが・・・
[つっこみ]

新しい記事:[523]  古い記事:[521] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)