まちの さま > 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コマンドを実行している部分の制御がうまくいってないのなら 両面印刷がうまくいかないのも納得がいくような気がします。 アドバイスありがとうございました。