[Desktop_printing] PPD settings vs IPP options

Johannes Meixner jsmeix at suse.de
Thu Feb 9 06:23:05 PST 2006


On Feb 9 14:00 Alexander Larsson wrote (shortened):
> 1) Get the PPD file for the printer, use the PPD file to set up the UI
> and defaults. When printing, embed the postscript snippets from the PPD
> file based on the settings the user made. Send this to the cups/ipp
> server.

A normal application should create printer independent
PostScript and specify all options as print job parameters
and let the CUPS filter system do the actual processing.
In particular the CUPS filter "pstops" will embed the PostScript
snippets from the PPD according to the job options.

An application can
produce 100% ready-to-print printer specific data
and then it must be printed in "raw" mode to avoid
that the CUPS filtering system tries to filter
the printer specific data again
it must produce 100% printer-independent generic data
(e.g. 100% printer-independent generic PostScript)
and then it lets the CUPS filtering system
produce the printer specific data from it.

It cannot work well is when an application embeds some
PostScript snippets which makes the PostScript printer specific
and then the CUPS filter "pstops" tries to do for example
N-up printing or whatever CUPS standard document options
(see "CUPS Software Users Manual" "Standard Printer Options").
See for example
for the resulting confusion and annoyance.

To avoid misunderstandings:
It is perfectly allowed and o.k when an application produces
printer specific data (e.g. CAD programs which must have 100%
control what exactly is sent to the printer or a Windows driver
on a Windows client system) but then it must be 100% ready-to-print
printer specific data which must be submitted with "-o raw" to CUPS
and then the user cannot use the CUPS "Standard Printer Options"
at the same time because no CUPS filtering is done.

By the way:

What about "Printer Specific Options" (from the PPD)
versus CUPS "Standard Printer Options" in the print dialog?

I noticed that normal users are often confused by this
because they don't have the background knowledge to
distinguish between both kind of options.

The "Printer Specific Options" can be set for any kind
of document type but the "Standard Printer Options"
depend on the document type:

For example a normal user doesn't know when a document
which looks like plain text is really plain (ASCII) text
or PostScript because this depends on what the text editor
or the mailer sends to the printing system.
If it is PostScript, the "Text Options" cannot work
because the CUPS filter texttops which implements
the "Text Options" does not run if the document
type is PostScript.

How could a printing dialog make clear for the user which
of the "Standard Printer Options" actually work for the
particular document type?

The printing dialog would have to ask CUPS which MIME type
the particular document type would become in the CUPS
filtering system but this depends on the *.types files
on the (remote) system where the CUPS filtering system
actually runs when you print with something like
lp -h remote-CUPS-server -d remote-queue local-file

Kind Regards
Johannes Meixner
SUSE LINUX Products GmbH, Maxfeldstrasse 5      Mail: jsmeix at suse.de
90409 Nuernberg, Germany                    WWW: http://www.suse.de/

More information about the Printing-summit mailing list