Postscript printer description files (PPDs) describe Adobe Postscript (PS) printers’ capabilities, thus being useful both for print queue servers and printing clients. Are there equivalents for other page languages, such as Microsoft Graphics Device Interface (MS GDI), Epson Esc/P2, Hewlett-Packard Printer Control Language (HP PCL) or IBM AFL?


CUPS actually uses PPDs for both PostScript and non-PostScript printers. For that purpose, CUPS extends the Adobe PPD standard: see https://www.cups.org/doc/spec-ppd.html

I don't know of any other standardized printer description file formats that would have been widely used. Some printer vendors may have something similar, but those are probably intended to be used by that vendor's "universal" printer drivers only, and not publicly documented.

  • Thanks! It would be interesting also to know if other software besides Cups use PPD files for non-PS stuff. – lfd May 12 '18 at 15:57
  • @lfd: Hehehe.... you seem to think (or hope) that there is any other relevant software besides CUPS that handles printing. Sorry to disappoint you: no, there isn't. Certainly not Open Source Software. (There may be some expensive, pay-ware, proprietary print spoolers; I used to know some of the names, but right now I cannot remember any.) – Kurt Pfeifle Dec 11 '18 at 19:33
  • Just curiosity, as I remember using lpr-ng, and we have to think of poor MSW users. – lfd Dec 11 '18 at 20:23
  • @lfd: lpr-ng is dead. Or at least no more relevant, and certainly not widely used. – Kurt Pfeifle Dec 12 '18 at 1:42

Roughly 95% or more of all (network-capable) printers sold in the last ten years on the market for SOHO (small office, home office) or general business printing needs are now supporting the Internet Printing Protocol.
(Think about AirPrint -- it wouldn't work without IPP. Also, more than half of these IPP-capable printers can consume PDF natively and print it without problems....)

That means, you can send printable jobfiles to them over an IPP channel via port 631, just as you used to send jobs via AppSocket (also named JetDirect by HP) mostly via port 9100.

But there's more to IPP: IPP means you can query a print device (or any IPP-enabled printserver queue, such as CUPS) about all its capabilities. In IPP parlance: you are doing a 'Get-Printer-Attributes' operation".

See this answer here:

for examples on how to accomplish the query of an IPP-capable print device using the IPP Sample Software of the ISTO Printer Working Group (PWG).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.