[cups.general] MacOS X client misbehaving

Helge Blischke h.blischke at srz.de
Tue Aug 8 07:59:45 PDT 2006


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.

Helge


-- 
Helge Blischke
Softwareentwicklung
SRZ Berlin | Firmengruppe besscom
http://www.srz.de




More information about the cups mailing list