openprinting.org: CUPS Filtering Architecture

Design of CUPS Filtering System [including the context for Mac OS X ("Jaguar")]

The CUPS filtering system is a very flexible and powerful framework. Due to its modular design, all kinds of “Third Party” or custom filters might be plugged in. It is very easy for printer manufacturers to make “their own” drivers run for CUPS. The easiest way probably is to provide a special “rastertovendor” filter, taking the well-documented pre-RIP-ed CUPS-Raster format (a MIME type registered with IANA, the Internet Assigning Numbers Authority) as input and spitting out the special raster data the vendor device needs…
One of the most important and universal extensions of the CUPS fitering system is provided by “foomatic-rip” (developed by Till Kamppeter, Mandriva, with idea input by Johannes Meixner, SuSE, and based on “cupsomatic” of Foomatic 2.0.x, originally developed by Grant Taylor and vastly improved by Till Kamppeter)



NOTES:

(1) This chart is correct for CUPS versions prior to 1.1.15. From 1.1.15 and in all future releases, the former “pstoraster” RIP function, provided and shipped as a CUPS filter, is “outsourced” now to a system's Ghostscript installation. This Ghostscript, if already there, might not be fit to handle the CUPS requirements. It needs to contain a compiled-in “device” with the name “cups”. Check for all supported Ghostscript devices by calling “gs -h”, if you have Ghostscript already installed.

(2) This chart will soon be published in an updated version on the website of openprinting.org.

(3) This chart is intended for providing an insight into the basic setup and might not be correct in some details.

(4) This chart was first designed to reflect a fully-featured Linux printing setup, and only later added “how Apple fits into the picture”.

(5) This chart doesn't show therefor filters and the CUPS system as shipped by Apple in “Jaguar”; on Apple you won't have the “pstoraster” filter nor Ghostscript bundled to CUPS; nor do you have all of the “CUPS raster driver” packages available. To install Gimp-Print (supporting around 130 current models directly, many of them in photographic output quality, and around 300 via “compatibility modes” of those additional models) is nearly trivial with installer packages like the current gimp-print-4.2.1.dmg one on http://prdownloads.sourceforge.net/gimp-print/

(6) You can always install and compile the missing parts you might need from sources; some packages might show up soon as pre-compiled Mac OS X installers. If you are interested in additional “Third Party Filters” listed here, other than Gimp-Print: not all of these add-ons are available on OS X yet and it is not yet clear if they ever will – best to write to the developers themselves and ask them; I don' know it!

(7) This chart was first modified to include Mac OS X support back in March, when I wrote my Unofficial CUPS-on-Apple-Mac-OS-X FAQ , but it somehow never made it into that document for some reason. Now here it is, with no dust removed…. Have fun!

Tell me if you found this chart useful…. Overview: the likely Design of the CUPS filtering system inside Mac OS X (versions from 10.2):