cups-driverd cat ppd-name

cups-driverd list request_id limit options


cups-driverd shows or lists PPD files. It is run in response to CUPS-Add-Modify-Printer or CUPS-Get-Devices requests. The first form ("cups-driverd cat ppd-name") writes the named PPD file to stdout. The output format is an uncompressed PPD file.

The second form lists the available manufacturers or PPD files to stdout as indicated by the options argument. The output format is an IPP response message. The request_id argument is the request ID from the original IPP request, typically 1. The limit argument is the limit value from the original IPP request - 0 means no limit. Finally, the options argument is a space-delimited list of attributes ("name=value name=value ...") that were passed in with the request. Currently cups-driverd looks for the ppd-make and requested-attributes attributes and tailors the output accordingly.


Drivers can be static PPD files under the /usr/share/cups/model directory or programs under the /usr/lib/cups/driver or /usr/libexec/cups/driver (OS X) directories. Static PPD files must conform to the Adobe PPD File Format Specification version 4.3 and may be compressed using the gzip(1) program. Driver programs must implement the command-line interface shown in the next section.


Driver programs provide a interface to dynamically-generated PPD files. The following arguments are currently defined:

drivername list

Lists the supported PPD files to stdout.

drivername cat ppdname

Writes the named PPD file to stdout.

Driver programs MUST NOT query hardware or make other long-term operations that would delay the return of a driver list. See the NOTES section below for specific recommendations.

LISTING FILES (drivername list)

When run with the single argument "list", the program must list the available PPD files it can generate to stdout using the following format:

    "drivername:ppdname" language "make" "make and model"
    "drivername:ppdname" language "make" "make and model" "1284 device id"
    "drivername:ppdname" language "make" "make and model" "1284 device id" "(PPD product)"
    "drivername:ppdname" language "make" "make and model" "1284 device id" "(PPD product)" "PostScript version"
    "drivername:ppdname" language "make" "make and model" "1284 device id" "(PPD product)" "PostScript version" "type"

Drivername is the name of the driver program. Ppdname is the name used to select the given driver. Language is the locale associated with the default language of the PPD file, typically "en". Make is the Manufacturer name from the PPD file. Make and model is the NickName name from the PPD file. 1284 device id is the 1284DeviceId from the PPD file, if any. (PPD product) is the Product string as it would appear in the PPD file or from a PostScript query. PostScript version is the PSVersion string as it would appear in the PPD file or from a PostScript query. Type is "postscript" for PostScript printers, "pdf" for PDF printers, "raster" for raster printers, or "fax" for facsimile devices.

WRITING FILES (drivername cat ppdname)

When the driver program is run with the "cat ppdname" arguments, it must write the named PPD file to stdout, uncompressed. If the named PPD file does not exist, the driver program must not write any output to stdout and report the error to stderr instead.


Error messages can be relayed back to cupsd by writing them to stderr. The following prefixes are recognized:

DEBUG: [drivername]

Debugging messages

ERROR: [drivername]

Error messages

INFO: [drivername]

Informational messages


Due to performance considerations, driver programs have been officially deprecated and should not be used for new development. Currently only the CUPS web interface and lpinfo(8) command will request lists from all driver programs.

RELATED TO cups-driverd…

cupsd(8), cupsd.conf(5), cupstestppd(1), lpinfo(8),



Copyright 2007-2013 by Apple Inc.