[cups.general] MacOS X client misbehaving

Marc Lanctot marc.lanctot at mail.mcgill.ca
Tue Aug 8 08:09:22 PDT 2006


Helge Blischke wrote:
> Marc Lanctot wrote:
>> Michael Sweet wrote:
>>
>>> Marc Lanctot wrote:
>>>
>>>> Hi guys,
>>>>
>>>> I've recently setup a printing system here at the department of 
>>>> Atmospheric and Oceanic Sciences.
>>>>
>>>> I have a SUSE Linux 9.2 server running CUPS 1.1.23.
>>>>
>>>> I have a department full of printing clients, with a good variety of 
>>>> operating systems, all of which must print via the print server 
>>>> (printing directly to the printers is disbled).
>>>>
>>>> My Linux clients are all using CUPS as well, all different versions 
>>>> from different Linux distros, but they're working like a charm. My 
>>>> SGI IRIX machines use lp and communicate through the CUPS lpd 
>>>> compatibility server. For various reasons particular to my setup I 
>>>> could not get Windows clients to work through Samba nor IPP, so they 
>>>> use LPR to connect as well.
>>>>
>>>> I have an HP Color Laserjet 4700 using the latest postscript PPD 
>>>> driver from LinuxPrinting.org, and a queue called say 'Eg-BW' which 
>>>> has the "Print Color as Gray" flag turned on so that black-and-white 
>>>> printing is forced when using this queue.
>>>>
>>>> Here's my problem: when I print from Adobe Reader 7.07 on a MacOS 
>>>> 10.3.9 client connecting through LPR to my Linux print server, it 
>>>> overrides the forced black-and-white setting and prints in color 
>>>> anyway. We charge each of our users depending on the queue used, so 
>>>> it's important that the restrictions for each queue work on all 
>>>> clients. This only happens on the Mac -- I can print properly from 
>>>> all my other clients.
>>>>
>>>> Anybody know how to fix this problem?
>>>
>>>
>>> Print from Preview instead.  Adobe applications use a legacy print
>>> API (the old MacOS 9 LaserWriter print API) so they can produce their
>>> own PostScript code. As a result, you can end up with PostScript print
>>> data without the "print as grayscale" command in it... :(
>>
>> Actually, Preview gives me the same problem. It's the only reason I 
>> tried Adobe :(
>>
>> Can you tell me what the "print color as gray" option does? I was under 
>> the impression that the print job is modified server-side before it was 
>> sent to the printer.
>>
>> Marc
>>
>>
> 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. I still have the same 
problem. Do I have to delete and re-add the printer for it to take the 
new settings?

I will look on the printer to see if it is overriding or ignoring this 
setting. It still boggles me that MacOS is the only one giving this 
problem.

Marc





More information about the cups mailing list