[Openicc] Is CUPS the right place for printer color management...

Kai-Uwe Behrmann ku.b at gmx.de
Mon Feb 7 06:50:23 PST 2011


Am 07.02.11, 14:15 +0100 schrieb Jan-Peter Homann:
> ... and if not, where is the place ?
>
> hello list,
> I try to understand, the ICC-related options in in CUPS, but I still feel 
> lost. May somebody can help or correct me:
>
> cupsICCProfile
> ***************
> http://www.cups.org/documentation.php/doc-1.4/spec-ppd.html#cupsICCProfile
>
> Comment Jan-Peter Homann:
> This PPD attribute delivers a possibility in the printing GUI to specify an 
> ICC profile for the driver setup by keywords like e.g. 
> ColorModel.MediaType.Resolution/Description
>
> As CUPS is not able to perform ICC based transformations itself, this 
> functionality is helpful for an external filter to identify the correct 
> printer ICC-profile for the choosen driver setting
>
> cupsRenderingIntent
> *********************
> http://www.cups.org/documentation.php/doc-1.4/spec-raster.html#TABLE2
>
> Comment by Jan-Peter Homann:
> Extremly poorly documented feature. It may allow to specify a RenderingIntent 
> for an ICC based color conversion from the document colorspace to 
> cupsICCProfile. (Or it is may means something complete different...)
>
> Implementing Color Management
> *********************************
> http://www.cups.org/documentation.php/doc-1.4/raster-driver.html#COLOR
>
> Comment by Jan-Peter Homann:
> This text describes NOT how to implement Color management with CUPS. It only 
> describes the part of specifying a selector to printer profiles with 
> cupsICCProfile.

That much reflects my opinion, that Apples colour management is not much 
exposed through CUPS or its documentation. We see merely some hooks. To 
base a complete architecture on this material or blindy copy & paste it is 
the wrong way. Consequently the RedHat attempt, while applaudable that 
they care about colour management for printing, appears currently like a 
dirty hack.

> Conclusion
> ***********
> So far as I understand, the main idea of color management in CUPS is 
> framework for PPD-options to select printer profiles in the directory 
> /usr/share/cups/profiles.
> If the CUPS profile selector should be linked with settings of the printer 
> driver (e.g. Gutenprint) it is the responsibilty of the driver vendor to 
> create the link.
> cupsICC also allows to define individual Keywords through cupsICCQualifier2 
> and cupsICCQualifier3
> to be defined in the PPD.
> This could e.g.
> "mediatype"
> "NameOfDriverSetting"
> If the special settings are specified in the driver, this allows to organize 
> the driver settings according mediatypes.
>
> CUPS delivers only a mapping of Printing-Device/Setting to ICC-profiles.
> If such mappings are managed outside CUPS e.g. via Oyranos or Gnome Color 
> Manager, it is not a must for ICC aware print workflow usind CUPS as 
> transport mechanism.
> For the enduser, the presentation of different printer driver settings from 
> e.g. Gutenprint in the Printing UI could be realized without  CUPS through 
> the LINUX OpenPrinting Dialogue as an individual option.
>
> Workflow with cupsICC:
> - Driver-Vendor, Media-Vendor or User creating driver settings with attached 
> ICC-Profiles
> - The generic Driver PPD is updated with entries for cupsICC according the 
> settings

This model needs root access. We should avoid making this a requirement 
for user supplied profiles.

> - Oyranos or g-c-m parse cupsICC in updated PPD and know, which profile 
> belongs to which driver-setting
> - The enduser sees the different driver settings according the updated PPD in 
> the print dialogue
> - Choosing a driver setting signals Oyranos or g-c-m the current valid 
> printer profile, which configures the ICC transformation from document 
> colorspace to the printer profile in the preferred toolkit
>
> Workflow without cupsICC
> - Driver-Vendor, Media-Vendor or User creating driver settings with attached 
> ICC-Profiles
> - The driver has a direct link to Oyranos or g-c-m
> - Oyranos or g-c-m create an Option in the OpenPrinting Dialogue
> - Choosing the Option in the print dialogue signals Oyranos or g-c-m the 
> current valid printer profile, which configures the ICC transformation from 
> document colorspace to the printer profile in the preferred toolkit

I think a lot of the discussion goes around, where the profile selection 
shall happen and how many informations need to be transported to and from 
CUPS server. With the profiles selection in CUPS server, many relations 
appear fuzzy like: who owns the job, can CUPS access the settings of that 
user, remote access issues, will proofing and calibration work relyable 
...

The other path is a early profile selection inside a UI (CPD). This 
includes the need to transport that profile and belonging settings to CUPS 
server and its helpers (Ghostscript/Gutenprint). Opt out and preview could 
be coded much easier. If a administrator or vendor wants to set one 
specific ICC profile to a queue its still possible through the cupsICC 
path.

Thats of course some more work than just to replace the Apple code in 
CUPS server, but in the end a flexible one. It will cover a lot of use 
cases.
Maybe we can make this a GSoC project: "Colour management near CUPS"
Please note, _not_ inside CUPS.


kind regards
Kai-Uwe Behrmann
-- 
developing for colour management 
www.behrmann.name + www.oyranos.org



More information about the openicc mailing list