[cups.general] MacOS X client misbehaving

Kurt Pfeifle kpfeifle at danka.de
Tue Aug 8 08:27:49 PDT 2006


Marc Lanctot <marc.lanctot at mail.mcgill.ca> wrote (Tuesday 08 August 2006 17:09):

> Helge Blischke wrote:

>> Marc Lanctot wrote:
>> 
>>  > Helge Blischke wrote:
>>  >
>>  >>
>>  >> Look at the following excerpt of this printer's PPD:
>>  >> ---snip---
>>  >> *% =================================
>>  >> *% Print Color as Gray
>>  >> *% Chose NOT to use standard *ColorModel keyword because color on or off is simpler
>>  >> *% =================================
>>  >> *OpenUI *ColorModel/Print Color as Gray:  PickOne
>>  >> *OrderDependency: 20 AnySetup *ColorModel
>>  >> *DefaultColorModel: CMYK
>>  >> *ColorModel Gray/On: "<</ProcessColorModel /DeviceGray>> setpagedevice"
>>  >> *ColorModel CMYK/Off: "<</ProcessColorModel /DeviceCMYK>> setpagedevice"
>>  >> *?ColorModel: "
>>  >>    save
>>  >>      currentpagedevice /ProcessColorModel get
>>  >>     /DeviceGray eq {(Gray)}{(CMYK)}ifelse = flush
>>  >>    restore
>>  >> "
>>  >> *End
>>  >> *CloseUI: *ColorModel
>>  >> ---snip---
>>  >> By using e.g. a job patch file in the PPD, you may force the printer to gray mode
>>  >> independent of whatever the PS job requests otherwise.
>>  >>
>>  >
>>  > Can you elaborate? I don't really understand what you mean but "using a job patch file in the
>> PPD". Is it doing that already, you mean?
>>  >
>>  > Marc
>>  >
>> 
>> Insert the following into your printer's PPD, e.g. just after the following snippet:
>> ---snip---
>> *% =================================
>> *% Emulations and Protocols
>> *% =================================
>> *Protocols: TBCP
>> 
>> *% =================================
>> *% Force gray mode
>> *% =================================
>> *JobPatchFile 1: "
>>     % first, set the color model to gray only
>>     <</ProcessColorModel /DeviceGray>> setpagedevice
>>     % now, redefine setpagedevice as to ignore this key
>>     % whenever is is specified
>>     userdict begin
>>     /setpagedevice
>>     {
>>        dup /ProcessColorModel undef
>>        setpagedevice
>>     }bind def
>>     end
>> "
>> 
>> ---snip---
>> 
>> Note, this will only work if the spooler you use supports this PPD
>> feature, as CUPS does.
>> 
> 
> I modified the PPD as stated, gzip'd it, replaced it in
> /usr/share/cups/model/HP and then restarted cups.

Heh... you're misunderstanding how CUPS works :-)
That directory is only the official repertory for *installable* PPDs.

Now that the PPD is there, it will be used next time you install it.

You can now 

 a) either install the printer again, using this PPD (actually, a simple
    "lpadmin -p printername -P /usr/share/cups/model/HP/<ppdname.ppd.gz>"
    should be enough;

 b) or just copy the PPD file to "/etc/cups/ppd/<printername.ppd>"
    where the *installed* PPDs are, and it should work

Cheers,
Kurt




More information about the cups mailing list