[cups.development] Interested in writing a cups driver...

Michael R Sweet msweet at apple.com
Fri Sep 5 13:10:06 PDT 2008

Collin Day wrote:
> ...
> 1.  I need to create a PCL3GUI driver filter, which will read the
> cups raster data -> i.e. CUPS would take my 16bit/channel yuck.tif
> and run it through this filter which would convert it to PCL3GUI data
> and then send it to the printer.  One question - is the PPD the
> driver as well?  I know that all of the settings / printer
> capabilities go in the PPD, but is the PCL3GUI filter an entirely
> separate entity?

Yes, and the PPD file points to it so that CUPS knows to run the
filter when printing.

> 2.  I need to figure out the channel mappings to the printer and then
> create mappings for different media types (plain paper, glossy, etc.)
> I suppose these could be profiled (that is getting ahead of myself -
> I should probably just get something working first).  I should
> examine the DDK further to figure out how to do this - but most of
> the info is in section 6 talking about raster color management.

Keep in mind that only CUPS on Mac OS X has any real notion of color
management at this time.  On Linux we currently only support basic
mapping to/from sRGB and leave all of the device color management up
to the driver (thus the code in the DDK...)

What I'd recommend is to take in grayscale data using the sRGB gamma
LUT, linearize it with an inverse map, and then dither using the
calibrated luminance values you get from a densitometer or 
spectrophotometer for each ink and dot size supported by the printer
(again, adjusting the values to compensate for dot gain...)

Michael R Sweet                        Senior Printing System Engineer

More information about the cups-devel mailing list