[Printing-architecture] Make use of extended color spaces on IPP printers

Till Kamppeter till.kamppeter at gmail.com
Sun May 9 09:20:57 UTC 2021

On 09/05/2021 03:38, Solomon Peachy wrote:
>> 7. As the PPD generator does not add choices for the extended color modes to
>> the ColorModel option (see (1)) we need to somehow add the info of how to
>> upgrade the color depth and color space for print-quality=high in (3) and
>> which is the highest color depth/space supported by the printer for (5). So
>> we let the PPD generator add a line like "*cupsHighQuality: 16bit,AdobeRGB"
>> (exact content depends on what the printer supports).
> It is is mistake to think about colorspace conversions in terms of
> "print quality" and as such something that can be "upgraded". Instead,
> one should think about it in terms of "correctness".

OK< then I will only upgrade from 8 to 16 bit (for the rasterizing of a 
standard vector-graphics-PDF) when the user requests "high" quality and 
the printer supports it.

My problem now is the following use cases:

1. A user wants to print photos in best possible (wide gammut) color 
reproduction quality. So he either sets his camera to produce AdobeRGB 
JPEGs or he shoots RAW and saves the processed RAW images in 
16-bit-per-color AdobeRGB. He sends his images out of his photo 
editor/manager to the printer, but the application sends print jobs in 
PDF. So we get a raster-only PDF with the raster data embedded being 
16-bit AdobeRGB (assuming that the printer supports it as the 
application's print dialog does a get-printer-attributes request and so 
knows what the printer supports).

In this case in the CUPS filtering process we have to discover at first 
whether the incoming PDF is raster-only. In this case we would not 
render it but pass it through pclmtoraster to extract the raster data 
with its color space info (AdobeRGB). We do not convert this to sRGB or 
anything else, but pass on a Raster file in AdobeRGB.

Question here: Do we need to discover that the PDF is raster-only and 
then use pclmtoraster? Or can we simply do the standard rendering 
(GhostScript, Poppler, or MuPDF) and tell the renderer (by command line 
for example) that we want AdobeRGB output? Would the renderer pass on 
the AdobeRGB data without conversion, especially not doing AdobeRGB -> 
sRGB -> AdobeRGB?

2. Another user wants to write a review of mobile phone providers, 
containing pictures and logos of the candidates (one of them is 
T-Mobile). In order to avoid the providers feeling stepped on their toes 
he wants to have best color reproduction. So he creates the print output 
(which is in PDF) in AdobeRGB as he knows that the printer supports it.

My question: Now how can the CUPS filters auto-discover that the PDF is 
in AdobeRGB and therefore the PDF needs to get rasterized in AdobeRGB? 
Is there some tool for that? Some special call of GhostScript or QPDF? 
Or can I uncompress the PDF and then search it for "/ColorSpace" keys? 
Also how to rasterize if there are some sRGB and some AdobeRGB pieces in it?


More information about the Printing-architecture mailing list