vine-users ML アーカイブ



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

  • From: oda hiroshi <oda@xxxxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:075928] Re: CUPSで の両面印刷
  • Date: Sat, 27 Jan 2007 03:31:26 +0900
まちの さま

> 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 &quot;%%!\n%%%% %%%%\n%C&qu&&
ot;; if (( $level &gt; 0 )); then if (( $level &lt; 99 )); then level=&&

&quot; -dLanguageLevel=$level&quot;; else level=&quot;&quot;; 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 &quot;%!\n%%%% %%%%\n%C&quo&&
t;; if [ $level -gt 0 ]; then if [ $level -lt 99 ]; then level=&quot; &&
-dLanguageLevel=$level&quot;; else level=&quot;&quot;; 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コマンドを実行している部分の制御がうまくいってないのなら
両面印刷がうまくいかないのも納得がいくような気がします。

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