[cups] Color profiles with CUPS?

Helge Blischke helgeblischke at web.de
Sat Dec 24 12:07:09 PST 2016

> Am 24.12.2016 um 15:25 schrieb Axel Braun <axel.braun at gmx.de>:
> Hello Jim,
> Am Samstag, 24. Dezember 2016, 11:19:19 CET schrieb Jim Ford:
>> On 23/12/16 19:34, Axel Braun wrote:
>>> Cups on Mac or on Linux?
>> On Linux.
> There may be an easy answer - but I dont know if it works. Nobody on the list 
> confirmed it so far.
> So you may test and share the result.
> 1) Print out a document (e.g. pdf, odt) on your preferred printer.
> 2) copy the color profile to /usr/share/cups/profiles/
> 3) restart cups (sudo systemctl restart cups)
> 4) print the document from 1) again and check the result
> I'm not sure if Cups picks the profile automatically, that is the question from 
> above that is open.
> If that does not work, or you have more than one printer and need distinct 
> profiles for each printer, let me know. I had prepared a how-to, but need to 
> translate it into English.
> have a good xmas,
> Axel

On Linux, the cups-filters package (which is said to be mandatory when using a cups version
>= 1.6.x) provides – limited – support for ICC profiles:

–	The profiles *must* be installed and maintained by the colord daemon (which in turn
	usually is accessed using the dbus interface). There is a single command line utility,
	colormgr, to install, delete, repair etc. ICC profiles. 
	The colord configuration (the colord.conf file) specifies where the profiles are stored.

–	The pstoraster, pdftoraster, and gstoraster filters from the mentioned package provide
	the use of ICC profiles for the respective print jobs. They retrieve the profile files either
	viea the *cupsICCProfile keyword and friends or, if these are not present in the printer’s PPD,
	via the dbus API from colord.

–	The rastertopdf filter from the mentioned package is said to support to generate ICC-based color spaces
	in the generated PDF (information from the README file), but as I haven’t got time to dig through the
	sources of this filter, it is not obvious to me how this really works.

As for printers that speak some other PDL than cups-raster or pwg-raster like PostScript, a PCL dialect,
XPS or some proprietary PDL, there is no ICC profile support by cups; instead I know from a variety of
proprietary ICC implementation in the printer’s firmware which are mostly undocumented (I happen to know 
very few of them in detail).
But, at least for printers that speak PostScript (at least language level 2) and conform to what Adobe
published in the respective PLRM, ICC profile support could be implemented using PS CRDs (Color Rendering
Dictionaries) using the utilities of the lcms2 (little cms) package, which is part of all Linux distros I know of.


More information about the cups mailing list