[cups.general] How does CUPS work?

Michael Sweet msweet at apple.com
Wed May 20 09:32:21 PDT 2009


On May 20, 2009, at 5:58 AM, Space Ship Traveller wrote:
> ....
> I then have a client such as OS X with a local CUPS server which I can
> load the printer into. This printer is loaded as IPP with the above
> URL. I also select the same PPD for use on the client.

Normally you actually want to use no PPD - "-m raw" when adding via  
the lpadmin command - so that the client grabs the PPD from the server  
and does no local filtering.

Mac OS X clients currently use a half-way approach for Bonjour shared  
printers - they copy the PPD to the local system and update it to  
basically say "I can print all of the standard formats directly" so  
that there is a local PPD (so you can still show options and queue  
jobs when you aren't on the server's network) but still get the  
benefits of server-side option processing.

> I think my question revolves around my understanding of PPDs.
>
> So, if I print a document, the PPD provides the application details
> about the printer such as output resolution. How does this work in
> general terms? For example, if I select 300 DPI, does this insert a
> command into the postscript data stream so that the printer will
> actually know to output 300DPI?

Yes, that's exactly how it works.

> In the case that I select 300 DPI on the client, but on the server it
> is set to something else, say 600DPI, how is this resolved? Does the
> server see that it was set to 300 and change it to 600?

What actually happens in the case of a double-filtered file (which is  
what your configuration does) is that the server defaults are applied  
and then the job defaults. So the printer will see "print at 600 dpi"  
and then shortly later "no, instead print at 300 dpi".

Not usually a problem, but it can confuse some systems that inspect  
the print data stream for options.

> In the case that the client uses a PPD, should the queue on the server
> be setup as a raw queue? Is it possible that applying the PPD twice
> will cause problems?

It *can* cause problems, but we do our best to make sure that is rare.

The ideal configuration is raw queue on the client and PPD queue on  
the server.

> What happens if the PPD on the client and the PPD on the server is
> different?

Depends on the differences.  For example, if you use the Generic  
PostScript PPD on the Mac OS X client and the vendor-specific PPD on  
the server, you'll end up getting additional options defaulted on the  
server end and only be able to control paper size on the clients.

> If I have a PPD on a print queue on a server, does the client somehow
> automatically pick that up?

Normally yes.  If you manually configure an IPP queue, then it doesn't.

________________________________________
Michael R Sweet, Senior Printing System Engineer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cups.org/pipermail/cups/attachments/20090520/ce70c7c8/attachment-0001.html>


More information about the cups mailing list