2007年1月27日

[vine-users:075928] Re: CUPSでの両面印刷

まちの さま

> 1) Vine3.2のfoomaticのgeneric PS ppdをVine4.0にコピーして、両面印字。
Vine3.0の
/usr/share/cups/model/foomatic/Generic-PostScript_Printer-Postscript.ppd
をVine4.0の同じディレクトリにコピーすると両面印刷が出来ました。

> 2) Vine4.0のfoomaticのgeneric PS ppdをVine3.2にコピーして、両面印字。

この場合は両面印刷できませんでした。


sdiffコマンドでVine3.2のPPDファイルとVine4.0のPPDファイルを比べてみると
違う箇所は61行目以降の

[Vine3.2のPPD]
:
:
*FoomaticIDs: Generic-PostScript_Printer Postscript

*FoomaticRIPCommandLine: "level=%D; printf "%%!\n%%%% %%%%\n%C&qu&&
ot;; if (( $level > 0 )); then if (( $level < 99 )); then level=&&

" -dLanguageLevel=$level"; else level=""; fi; gs -&&

q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite$level%A%Z -sOutpu&&

tFile=- -; else cat; fi"

*End

:
:

[Vine4.0のPPD]
:
:
*FoomaticIDs: Generic-PostScript_Printer Postscript
*FoomaticRIPCommandLine: "level=%D; printf "%!\n%%%% %%%%\n%C&quo&&
t;; if [ $level -gt 0 ]; then if [ $level -lt 99 ]; then level=" &&
-dLanguageLevel=$level"; else level=""; fi; gs -q -dPAR&&
ANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=pswrite$level%A%Z -sOutputFile=-&&
-; else cat; fi"
*End
:
:

でした。
これを見ると
Vine3.2では
if (( $level -gt 0 )); then ...
となっているのに対し
Vine4.0では
if [ $level -gt 0 ]; then ...
となっています(シェルスクリプトの文法?)。

この箇所で
levelという変数の値によってgsコマンドに渡すオプションを制御し、
gsコマンド自体も実行しているようですが、
もしかしたら、Vine4.0ではCUPSでのifの文法でないために
この箇所がまるまるスキップされているのかもしれません。

実際にどの箇所が両面印刷を指定しているのかは分かりませんが、
gsコマンドを実行している部分の制御がうまくいってないのなら
両面印刷がうまくいかないのも納得がいくような気がします。

アドバイスありがとうございました。

投稿者 xml-rpc : 2007年1月27日 03:31
役に立ちました?:
過去のフィードバック 平均:(5) 総合:(5) 投票回数:(1)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/53383
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。