[Openicc] - CM Framework - Printer Driver -

Michael Sweet msweet at apple.com
Tue Jun 21 10:27:01 PDT 2011

On Jun 21, 2011, at 9:24 AM, Richard Hughes wrote:
> On 21 June 2011 17:00, Till Kamppeter <till.kamppeter at gmail.com> wrote:
>> On 06/21/2011 05:48 PM, Richard Hughes wrote:
>>> Right, but what actually spawns the rasterto... binary?
>> CUPS spawns it. CUPS reads the PPD file and sees in a cupsFilter line that
>> the driver needs CUPS Raster as input and that the driver itself is the
>> filter named rasterto... This means that CUPS builds a filter chain which
>> turns the incoming data into CUPS Raster and adds the rasterto... filter to
>> the end of the filter chain. This leads to the printer's data format being
>> generated at the end and sent to the backend.
> Right so we've got
> 1 cupsd -> gstoraster $options
> 2 cupsd <------/
> 3 cupsd -> rastertogutenprint $options
> 4 cupsd <------/
> So how would gstoraster pass options to rastertogutenprint? Or does
> rastertogutenprint somehow itself call gstoraster?

It is this:

     pdftops -> pstops -> pstoraster -> rastertogutenprint -> backend

All of the filters are run in parallel, with the output from the first filter going to the second, etc. You can't pass options (at least not in any standard way) between filters, so everything has to be provided by the client (application or print dialog), PPD defaults, or something that cupsd synthesizes based on a mapping from a standard IPP job template attribute to the corresponding PPD option(s).

Michael Sweet, Senior Printing System Engineer, PWG Chair

More information about the openicc mailing list