[Openicc] GoSoC 2011: CPD and target printing

Richard Hughes hughsient at gmail.com
Wed May 11 07:33:52 PDT 2011

On 10 May 2011 17:23, Jan-Peter Homann <homann at colormanagement.de> wrote:
> - how are ICC-profiles linked to printer settings ?
> (which tool should be used ?)

If a printer PPD specifies any embedded profiles then CUPS calls
CreateProfile() for each profile, and then does AddProfile() on the
printer device. This is all automatic, and the colord device-profile
relationship is 'soft'.

If the user can download a profile from the vendor website, then they
can either double click on the icc file and then add the profile to
the printer using the 'Color' control center tool. The alternative is
to find the printer device in the 'Color' control center click on [+]
and find the downloaded profile. It's a bit simpler if you calibrate
manually using something like a ColorMunki, as the new generated
profile automatically gets added. Both types of action add a 'hard'
relationship from the device to the profile.

Hard relationships always override soft relationships. It's the same
concept that allows a Huey calibrated screen profile to trump a
auto-generated EDID profile.

> - what is the undelying mechanism, that the  user chooses a printer setting
> in the printing panel and the assigned profile is automatically used ?

Currently, at least using GTK, when the user selects the resolution
and paper type, this gets send to the CUPS queue. The PPD specifies
what parameters are important (the same criteria currently used by
OSX) and this allows CUPS (via gstoraster or foomatic) to query from
colord what profile should be used for the current qualifiers. If the
exact qualifier match is not available, then we fall back to something
similar and sane. colord currently just supports the same query format
as Apple uses with ColorSync, but it's treating the data as a string
rather than a hard coded tri-dotted notation. This means we can have
standard qualifiers such as "RGB.Glossy.600dpi" and also extend that
in the future by stuffing something crazy like XML in there if we
wanted. I really don't think we want to let the user to manually
select a printer profile in any UI for the same reasons as I recently
wrote to this mailing list.

> - what is the mechanism, to integrate new combinations of printer setups and
> assigned profiles in the printing GUI through the user ?

In colord, currently each queue is the smallest subdivision of the
profile<->device mapping. In this way, I think it makes sense to have
one physical printer with multiple queues, maybe one queue for "HP
Photoprint 5100 GenuineInks" and "HP Photoprint 5100 Tee-Shirt
Printing Inks" -- so I think setting up a new queue is probably best
done in system-config-printer or the new GNOME3 tool. Setting up a new
mapping isn't something we want to do very often, and probably isn't
something the user wants to do in something like the CPD given the
high level "just do it" goal of the project.


More information about the openicc mailing list