Submit jobs via a command with libgnomeprint2
Stephane Peter <[email protected]>
| Newsgroups | gmane.comp.gnome.print |
|---|---|
| Organization | Codehost, Inc. |
| Message-ID | <[email protected]> |
I have recently installed the new Ximian Desktop 2 on my system, and as such have been testing the new Gnome Printing architecture which is so closely tied to CUPS now, which I like, but also have a problem with. To put it shortly, what we need is to be able to submit jobs through a specific command. I have downloaded and looked at the latest source code for libgnomeprint2, especially the CUPS transport module. The current CUPS module in Gnome uses the libcups library's cupsPrintFile call, which sends direct IPP requests to the CUPS daemon to submit the job, without having to resort to calling the "lpr" command. In itself, I believe this is the right way to do it (and the cleanest). However I want to point out that there may be a need for a more flexible way of submitting jobs, in part because the current Gnome printing dialogs may not be sufficient to access the features of printers with complex PPDs. My company's flagship product, Codehost BrightQ, is a suite of printing utilities for Unix / Linux systems. We fully support CUPS and configure printers in a way mostly compatible with a system like Gnome Print. However, we do have some PPDs that are so complex that the regular CUPS parser is unable to handle some of the options (that are actually extensions to the PPD standard). We solve this in our product by providing a special CUPS filter to handle these extended options, as well as a job submission program (called PJM for Print Job Manager) that is able to parse these extended options and present them to the user in a UI (based on Gtk). With the current CUPS module in Gnome 2, our customers are no longer to use our PJM with Gnome 2 applications, and thus can no longer enact these extended features. What we really need is some way to submit jobs to an arbitrary command. We don't necessarily need a full printing system back-end module for libgnomeprint. We have thought of 2 possible viable solutions : - Patch the existing CUPS module to somehow allow the user to choose between submitting the job via IPP or by calling the lpr command (or other user-defined command). - Come up with a new module whose specific purpose is submitting job to generic commands ; it doesn't have to be able to enumerate all printers, maybe just one "virtual" printer so that jobs can be sent to the associated command. I don't know the status of future Gnome Print developments (is any work planned on other modules besides CUPS? At least KDE Print has a LPR module), so I'd like to hear your comments about this and if any of these sound like reasonable solutions to this problem. I believe this could be useful to people even outside the scope of our own problem with the current architecture... -- Stephane Peter Sr. Software Engineer Codehost, Inc.