This chapter describes how to develop PPD files for PostScript printer drivers.
The PPD compiler is capable of producing PPD files for PostScript printers just as easily as for non-PostScript printers. PostScript printer drivers use the ps driver type:
DriverType ps
PostScript drivers require the attributes listed in Table 4-1. If not specified, the defaults for CUPS drivers are used. A typical PostScript driver information file would include the following attributes:
Attribute DefaultColorSpace "" Gray Attribute LandscapeOrientation "" Minus90 Attribute LanguageLevel "" "3" Attribute Product "" "(Foo LaserProofer 2000)" Attribute PSVersion "" "(3010) 0" Attribute TTRasterizer "" Type42
Attribute | Description |
---|---|
DefaultColorSpace | The default colorspace: Gray, RGB, CMY, or CMYK. If not specified, then RGB is assumed. |
LandscapeOrientation | The preferred landscape orientation: Plus90, Minus90, or Any. If not specified, Plus90 is assumed. |
LanguageLevel | The PostScript language level supported by the device: 1, 2, or 3. If not specified, 2 is assumed. |
Product | The string returned by the PostScript product operator, which must include parenthesis to conform with PostScript syntax rules for strings. Multiple Product attributes may be specified to support multiple products with the same PPD file. If not specified, "(ESP Ghostscript)" and "(GNU Ghostscript)" are assumed. |
PSVersion | The PostScript interpreter version numbers as returned by the version and revision operators. The required format is "(version) revision". Multiple PSVersion attributes may be specified to support multiple interpreter version numbers. If not specified, "(3010) 705" and "(3010) 707" are assumed. |
TTRasterizer | The type of TrueType font rasterizer supported by the device, if any. The supported values are None, Accept68k, Type42, and TrueImage. If not specified, None is assumed. |
Most PostScript printer PPD files include query commands (?PageSize, etc.) that allow applications to query the printer for its current settings and configuration. Query commands are included in driver information files as attributes. For example, the query command for the PageSize option might look like the following:
Attribute "?PageSize" "" " save currentpagedevice /PageSize get aload pop 2 copy gt {exch} if (Unknown) 23 dict dup [612 792] (Letter) put dup [612 1008] (Legal) put dup [595 842] (A4) put {exch aload pop 4 index sub abs 5 le exch 5 index sub abs 5 le and {exch pop exit} {pop} ifelse } bind forall = flush pop pop restore"
Query commands can span multiple lines, however no single line may contain more than 255 characters.
Normally a PostScript printer driver will not utilize any additional print filters. For drivers that provide additional filters such as a CUPS command file filter for doing printer maintenance, you must also list the following Filter directive to handle printing PostScript files:
Filter application/vnd.cups-postscript 0 -
The ppdi(1) utility included with the CUPS DDK imports existing PPD files into driver information files. This allows you to make modifications and localize PPD files for other languages with great ease. Use the following command to import a single PPD file called filename.ppd into a driver information file called filename.drv:
ppdi filename.drv filename.ppd ENTER
The driver information file is created if it does not exist. Otherwise the PPD file information is appended to the end of the file. You can use shell wildcards to import whole directories of PPD files:
ppdi filename.drv *.ppd ENTER
Once imported, you can edit the driver information file and use the ppdc program to regenerate the PPD files:
ppdc filename.drv ENTER