Jay Martin wrote:
>> How much of an open architecture does CUPS have with regard
> to printer driver/interfaces? I understand the "stock" (freebie)
CUPS is setup to handle PostScript and raster printers directly.
PostScript printers (obviously) utilitize PostScript Printer
Description ("PPD") files that come with the printer; we normally
use the Windows NT 4.0 PPD files.
Raster printers need a little more work. First, you need to generate
a PPD file that describes the printer and provides a few additional
CUPS-specific keywords that tell the printing system what filters to
use, the model number, color profile information, and so forth. These
keywords are covered in the CUPS IDD.
Second, you need to write a filter program that converts CUPS raster
data (application/vnd.cups-raster) to the appropriate format for the
printer. Typically this involves sending some setup commands prior
to each page, dithering and compressing the raster data, and sending
the end-of-page commands (form feed or whatever.) All of the RIP'ing
and color correction is provided through the PostScript and image file
RIP filters, so the raster filters tend to be pretty simple.
Depending on the printer you may also be able to provide additional
filters for HP-GL/2, text, etc. formats if they are accepted directly.
We do this for our commercial HP drivers since many HP printers support
HP-GL/2 and all support text.
The IDD and sample drivers provide some reference material but not
the "how to" information a developer is likely to need, so I'm in the
process of writing some articles on CUPS that cover all the basics of
writing your own filters and printer drivers.
Michael Sweet, Easy Software Products mike at easysw.com
Printing Software for UNIX http://www.easysw.com