[Printing-architecture] CUPS 3.x: How we make it converting job data formats?

Michael Sweet msweet at msweet.org
Wed Apr 27 12:43:23 UTC 2022


Till,

For CUPS 3.0 I'd like us to limit "filtered" printing to a smaller set of common formats: plain (Unicode) text, JPEG and PNG images, and PDF.  Then we "only" need to support converting from those formats to PWG/Apple Raster and PDF using the standard IPP Everywhere Job Template attributes. Obviously we can still allow printer-specific formats (PCL, PostScript, ESC/P, ZPL, etc.) sent to compatible printers, but limiting the formats we process locally will greatly simplify development and testing.

> On Apr 26, 2022, at 11:42 AM, Till Kamppeter <till.kamppeter at gmail.com> wrote:
> ...
> 1. Continue with external filter executables from cups-filters, but now they do not need support PPDs, they can be based on the original filter functions in libcupsfilters. The "universal" CUPS filter, based on the "cfFilterUniversal()" filter function, can be used to call filter chains from a single executable to reduce external executable calls).

I think that isolating the filtering in a separate process is an important security and reliability choice - a filter crashing stops a single job, but crashing the local spooler will stop (and potentially lose) everything, not to mention likely causing issues for the applications that are talking to it.

The model I used in the PWG ippserver and ippeveprinter sample code (with an external transform command) is probably the way we want to go, with that executable handling all of the basic filtering functionality in one program.  I really don't want to see a proliferation of filters like we have in the current CUPS since that has historically been a great source of pain/support calls.  Better to have a smaller set of file formats we support consistently.

WRT filtering functionality, we've recently had new requests to be able to add watermarking and header/footer text to pages, in addition to the current IPP Everywhere-based filter options.  Doing so is important for replicating common printer driver options, and is also useful in enterprise environments where printing is under greater control/restrictions.

________________________
Michael Sweet



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.linuxfoundation.org/pipermail/printing-architecture/attachments/20220427/cb5c4b05/attachment.sig>


More information about the Printing-architecture mailing list