Submit jobs via a command with libgnomeprint2



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.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]