CUPS native rasterization versus Ghostscript/foomatic/gutenprint

Michael R Sweet msweet at
Mon Sep 22 07:10:30 PDT 2008

Priyanka wrote:
> ...
> However it is mentioned at many places on internet that ghostscript
> can be used to convert ps to pcl directly by skipping "raster
> conversion" step. It seems that various optimized algorithms (e.g.,
> halftoning, compression etc) are available in gutenprint/ghostscript
> code which can be utilized if we develop the printer driver using
> ghostscript.

Ghostscript doesn't offer much in the way of halftoning or compression.
About all you get is support for vector graphics which is used for the
PCL 6 and OPVP (Open Printing Vector Printing) interfaces, the latter
of which allowing you to write a vector-based driver using multiple
front-ends (Ghostscript and poppler are supported right now...)

In general, I do not recommend developing Ghostscript-based drivers.
If you want to take advantage of your printer's vector graphics
capabilities, look at the OPVP stuff at:

While relatively new, it is the only vector interface that doesn't
lock you into a particular front-end or license.

> I am now wondering whether I should develop the driver using "native
> cups rasterization" or using "gutenprint"/"ghostscript" etc. Can
> anybody suggest, depending on these criteria: - Performance -
> stability - Quality - Completeness etc...

Gutenprint uses CUPS raster.

Ghostscript is only one filter commonly used with CUPS.  The new
poppler-based PDF filters are expected to supplant Ghostscript for
many common printing tasks as PDF becomes more widely used on Linux,
and if you want to support Mac OS X you'll have to deal with the
Apple CoreGraphics-based filters.

In general, host-based rasterization is faster than printer-based
rasterization.  However, high-speed printers often provide specialized
processors to accelerate rasterization so you'll just have to test
your specific device to see which path is faster for you.

Stability isn't specific to raster vs. vector, although raster drivers
do tend to be simpler and thus less prone to bugs.  Also, vector
support is not universally available while raster support *is*.

Quality is usually the same, although vector-based printing can allow
the print engine to do localized higher-resolution rendering (e.g.
1200/2400 DPI line drawing on some HP printers) that cannot be done
via the raster interface.

Michael R Sweet                        Senior Printing System Engineer

More information about the cups-devel mailing list