[Openicc] Introduction / Gutenprint]

Michael Sweet mike at easysw.com
Tue Apr 12 00:12:24 EST 2005

Robert forwarded me part of this discussion about how to select
profiles in the print path; I'll summarize what Apple has done
for MacOS X and what we will be supporting in CUPS 1.2.

Basically you add cupsICCProfile attributes to your PPD file to
specify the output profiles for various printing modes supported
by your device.  Normally the output profile selection is done
automatically using the current job options (media type, color
model, resolution, etc.), however it is also possible to include
the cupsICCProfile attribute in a print job to select a specific
profile, overriding the auto selection, e.g.:

     lp -o cupsICCProfile=CMYK.Glossy.2880dpi filename.jpg

We are *not* supporting generic filenames ("-o
cupsICCProfile=/path/to/filename.icc") in the attribute due to
security concerns, however it is conceivable that we could
allow any installed profile to be referenced instead, e.g. "-o
cupsICCProfile=filename.icc" which maps to the
/usr/share/cups/profiles directory...

The following is a snippet from the ppd.shtml documentation file in
CUPS trunk:



This attribute specifies an ICC color profile of the form:

     *cupsICCProfile ColorModel.MediaType.Resolution/Description: "filename"

The ColorModel, MediaType, and Resolution keywords specify a selector 
for color profiles. If omitted, the color profile will match any option 
keyword for the corresponding main keyword.

The Description specifies human-readable text that is associated with 
the color profile. The filename portion specifies the ICC color profile 
to use; if the filename is not absolute, it is loaded relative to the 
/usr/share/cups/profiles directory.

Customizing the Profile Selection Keywords

The ColorModel, MediaType, and Resolution keywords can be reassigned to 
different main keywords, allowing drivers to do color profile selection 
based on different parameters. The cupsICCQualifier1, cupsICCQualifier2, 
and cupsICCQualifier3 attributes define the mapping from selector to 
main keyword:

     *cupsICCQualifier1: MainKeyword
     *cupsICCQualifier2: MainKeyword
     *cupsICCQualifier3: MainKeyword

The default mapping is as follows:

     *cupsICCQualifier1: ColorModel
     *cupsICCQualifier2: MediaType
     *cupsICCQualifier3: Resolution

Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com

More information about the openicc mailing list