PostScript Printer Description
# PostScript Printer Description

PostScript Printer Description (PPD) 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 (commands) 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:

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

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/.

## Windows

Microsoft Windows also uses PPD files but converts these to a binary .BPD file format before using them. These, both PPD and BPD, 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 a PPD file requires four steps:

* stop the spooling service;
* edit the existing PPD file in place or replace it by an updated version;
* remove the old BPD file;
* restart the spooling service.

This will automatically generate a new BPD from the updated PPD.

## MIME type

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

