PostScript Printer Description


PostScript Printer Description files are created by vendors to describe the entire set of features and capabilities available for their PostScript printers.
A PPD also contains the PostScript code used to invoke features for the print job. As such, PPDs function as drivers for all PostScript printers, by providing a unified interface for the printer's capabilities and features. For example, a generic PPD file for all models of HP Color LaserJet contains:

  • %

  • % Basic Device Capabilities
  • %

  • LanguageLevel: "2"
  • ColorDevice: True
  • DefaultColorSpace: CMYK
  • TTRasterizer: Type42
  • FileSystem: False
  • Throughput: "10"

which specifies that the printer understands PostScript Level 2, is a color device, and so forth. The PPD can describe allowable paper sizes, memory configurations, the minimum font set for the printer, and even specify a tree-based user interface for printer-specific configuration.
A PPD is also often called PostScript Page Description instead of Printer Description, this is because PostScript has the concept of Page Devices where the PostScript page description configuration is read from or saved as a PPD file.

CUPS

uses PPD drivers for all of its PostScript printers, and has even extended the concept to allow for PostScript printing to non-PostScript printing devices, by directing output through a CUPS filter. Such a file is no longer a standard PPD, but rather a "CUPS-PPD".
CUPS clients usually read the current PPD file from the server every time a new print job is created. It is located in /usr/share/ppd/ or /usr/share/cups/model/.

/usr/share/ppd
├── cupsfilters
│   ├── Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd
│   ├── Generic-PDF_Printer-PDF.ppd
│   ├── HP-Color_LaserJet_CM3530_MFP-PDF.ppd
│   ├── pxlcolor.ppd
│   ├── pxlmono.ppd
│   └── Ricoh-PDF_Printer-PDF.ppd
├── cups-pdf
│   ├── CUPS-PDF_noopt.ppd
│   └── CUPS-PDF_opt.ppd
└── custom

Windows

also uses PPD files but converts these to a binary.BPD file format before using them. These are normally stored in %WINDIR%\system32\spool\drivers\w32x86\3 on an x86 system, or %WINDIR%\System32\spool\drivers\x64\3 on a 64 bit system. Updating the PPD files requires removing and then reinstalling the printer.

MIME type

The MIME type for the CUPS variant of PPD is application/vnd.cups.ppd.