[cups.development] [RFE] STR #1462: Make arbitrary filter options available for arbitrary user frontends

jsmeix.suse jsmeix at suse.de
Mon Mar 6 06:17:07 PST 2006


[STR New]

This enhancement request is probably for CUPS 1.3:

As far as I know a user printing frontend can only have hardcoded
dialogs for the the various options for the various CUPS filters.

I would like to propose a dynamic way how an arbitrary filter program
can make its specific options available for arbitrary user frontends
so that it works correctly regardless of the CUPS version and the
user frontend version and even for third-party filters which may
implement additional or different options.

The idea is the same as how backends show device discovery information:
If a filter program is run without arguments, it spits out its built-in
options
and choices on stdout in a defined format.

During startup the cupsd calls each filter program and collects what the
various
filters spit out.
An arbitrary user frontend can query the cupsd which filters exist and
for which data types the filter works and which filter provides which
options
and choices so that the user frontend can build up exactly matching
dialogs.
If the query fails (or if there is no output), the user frontend can fall
back
to its built-in defaults.

I propose to use the PPD syntax for filter options because the user
frontends
already know how to build dialogs based upon PPDs.

For example the "Text Options" (i.e. the texttops filter options) may look
like:
---------------------------------------------------------
*cupsFilter: application/x-cshell application/postscript 33 texttops
*cupsFilter: application/x-perl application/postscript 33 texttops
*cupsFilter: application/x-shell application/postscript 33 texttops
*cupsFilter: text/plain application/postscript 33 texttops
*cupsFilter: text/html application/postscript 33 texttops

*OpenGroup: texttops/Text Options

*OpenUI *cpi/Characters Per Inch: PickOne
*Defaultcpi: 10
*cpi 10/10: ""
*cpi 12/12: ""
*cpi 17/17: ""
*CloseUI: *cpi

*OpenUI *lpi/Lines Per Inch: PickOne
*Defaultlpi: 6
*lpi 6/6: ""
*lpi 8/8: ""
*CloseUI: *lpi

[...]

*CloseGroup: texttops
---------------------------------------------------------

Using the command line options as main keywords and the
command line values as option keywords result that the user frontends
can set them as usual job parameters "-o option=value".

Link: http://www.cups.org/str.php?L1462
Version:  -feature





More information about the cups mailing list