Comment 16 for bug 820820

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Martin-Éric, due to the filter mechanisms of CUPS the data format arriving at cups-pdf is always PostScript or PDF. The upstream PPD file of cups-pdf forces CUPS to turn everything into PostScript, by omitting any cupsFilter line which defaults to

*cupsFilter: "application/vnd.cups-postscript 0 -"

All conversion to PostScript is done by the CUPS filters, texttops for plain text, pdftops for PDF, ... cups-pdf then receives PostScript and nothing else.

In my suggested architecture the PPD file has

*cupsFilter: "application/vnd.cups-postscript 100 -"
*cupsFilter: "application/vnd.cups-pdf 0 -"

allowing both PostScript and PDF as input. Any other format is converted by the filters coming with CUPS, so it is guaranteed that the input is PostScript or PDF. PDF is the desired destination format, so if the incoming format is PDF and the user has no special desires one could simply save it. PostScript can be turned to PDF by the backend using Ghostscript, as it was done before. If the user expresses special desires via the config file, the input data is passed through Ghostscript. In this case it does not matter whether the input data is PostScript or PDF, as Ghostscript understands both and switches automatically.

In Debian and Ubuntu CUPS is configured for a PDF-centric printing workflow. Desktop applications send PDF, then a pdftopdf filter applies CUPS' page management options and the result is fed into cups-pdf when one uses my suggested architecture.

If the user cats a text file into lpr, CUPS calls texttopdf, then pdftopdf and finally cups-pdf, again feeding PDF into cups-pdf.

Conversion of arbitrary input files is always done by CUPS and not by cups-pdf. In the good old times of PostScript-centric CUPS cups-pdf only needed to do the final step of turning PostScript into PDF, with the new PDF-centric CUPS workflow this is not needed any more, CUPS delivers PDF for us then. cups-pdf only needs to cater for special wishes, like changing the PDF level then, and can simply save the file in most cases as most users do not have these special wishes.