[Printing-architecture] Some suggestions for the DNS-SD (Bonjour) printer support in the dialog
till.kamppeter at gmail.com
Fri May 17 18:14:09 UTC 2013
On 05/17/2013 04:23 PM, Michael Sweet wrote:
> WRT waking up printers, it isn't generally an issue for a print dialog - there you can browse and query TXT records (if needed/desired) without waking the printer up. Just hold off on doing a Get-Printer-Attributes request until you need it (after printer selection, on bring-up of the dialog for the default printer, etc.)
> Also, CUPS 1.6 and later have CUPS APIs for efficiently browsing for and getting printer capabilities. I don't know what your requirements are for CUPS versions, but that would save a lot of code right there...
I can perhaps make cups-browsed only poll the printers when they appear
(and then they are recently turned on and awake anyway), by caching the
PPD when the printer disappears (this way also saving system default
changes of the options) before the queue gets removed and when the
printer appears again creating it with the cached PPD (assuming that the
capabilities of a printer do not change during its lifetime).
This way there is no flood of printer wakeups when one boots the machine
and cups-browsed starts or when one arrives with a mobile device with
running cups-browsed in the local network.
So usually only new machines cause printer wakeups.
Only the TXT record does not give enough capabilities to generate a
usable PPD for a CUPS queue.
If I create a raw CUPS queue, can I send a job to it with special IPP
attributes so that CUPS applies a filter chain? This way I could make
cups-browsed only create raw queues to avoit IPP polling and the dialog
then could poll the printer's capabilities when the User selects the
printer, create the option panel PPD-less and send the job with IPP
attributes for the options and for making CUPS applying filters to get
the output into the format needed by the printer.
More information about the Printing-architecture