OpenPrinting / cups

OpenPrinting CUPS Sources
https://openprinting.github.io/cups
Apache License 2.0
1.06k stars 190 forks source link

PCLm support #295

Closed zx2c4 closed 2 years ago

zx2c4 commented 2 years ago

Now that we're no longer held back by what Apple wants in macOS, I'm wondering if it makes sense to revisit: https://github.com/apple/cups/issues/5095

Cc @tillkamppeter

tillkamppeter commented 2 years ago

In terms of getting maximum completeness of standards support yes, but in terms of getting more different printer models supported no, as as Mike already told, the printers supporting PCLm also support at least one of Apple Raster and PWG Raster. Especially Apple Raster is very wide-spread, as every manufacturer wants that users can print from an iPhone. So once thy already have an IPP printer, adding Apple Raster support is a negligible amount of work.

PCLm is a subset of PDF. You can display it with any PDF reader. It is raster-only (no fonts, no vector graphics) and streamable. This way the format can be used by cheaper printers which cannot hold a complete print job in memory. With arranging the raster content in bands they even do not need to hold an entire page.

I use PCLm in the pappl-retrofit library to turn incoming Raster streams into PDFs which can be streamed out to the (PDF) printer and the client (the Printer Application) does not need to hold the whole job, in case a Raster job is sent to a PDF printer.

michaelrsweet commented 2 years ago

I agree with Till - there current IPP clients and printers support PWG and/or Apple raster, which we already support, and PCLm is just a subset of PDF, which we already support for input to CUPS. PCLm for output is a dead-end, and was back in 2010 when HP invented it because they wanted something more "enterprise friendly" than PWG/Apple raster, not to mention that PCLm is basically PDF/is, a streamable PDF subset that the PWG published back in 2004 to support Internet fax. There is nothing special about it beyond having printer-defined limits for the band/strip height used on each page (making the resulting PDF printer-specific but viewable by any desktop PDF reader...)