Page description language. In digital printing, a page description language (PDL) is a computer language that describes the appearance of a printed page in a higher level than an actual output bitmap (or generally raster graphics). An overlapping term is printer control language, which includes Hewlett-Packard's Printer Command Language (PCL). PostScript is one of the most noted page description languages. The markup language adaptation of the PDL is the page description markup language.

Page description languages are text (human-readable) or binary data streams, usually intermixed with text or graphics to be printed. They are distinct from graphics application programming interfaces (APIs) such as GDI and OpenGL that can be called by software to generate graphical output.

Notable examples
Various page description languages exist:

 AFP, Advanced Function Presentation (IBM)
 Apple Raster, formerly known as URF, used by the AirPrint protocol.
 Canon GARO, Graphic Arts language with Raster Operations (for large format printers), based on Hewlett-Packard PCL3GUI / RTL and CPCA job description language.
 Common Ground page definition language
 CPCL, Comtec Printer Control Language (now Zebra)
 DjVu, a mixed raster content (MRC) format supporting OCR-based scanned documents (AT&T Labs)
 DPL, Datamax Printer Language (now Honeywell)
 DTPL, Datamax Ticket Printer Language
 DVI, Device Independent, output from TeX
 E411, Emulation 411, for Ticketing and Flight Strip (ATC) systems (IER)
 EPL, Eltron Programming Language (now Zebra)
 Envoy page description language (WordPerfect)
 ESC/P, Epson Standard Code for Printers, simple language mainly used in dot matrix printers
 ESC/P2, an expanded version of ESC/P
 ESC/Page, Epson Standard Code for Page Printer, a page description language (distinct from ESC/P) used in a number of Epson laser printers, especially Japanese models
 ESC/POS, Epson Standard Code for POS printers
 FGL, Friendly Ghost Language (Boca Systems) printers
 Fingerprint, a programming language, Direct Protocol is subset of Fingerprint (Intermec) 
 HP-GL and HP-GL/2, geometric language introduced by Hewlett-Packard for pen plotters, still in use today for technical drawings
 Interpress (Xerox)
 IJPDS, Ink Jet Printer Data Stream (Kodak)
 IPDS, Intelligent Printer Data Stream (IBM)
 IGP/PGL, Printronix Graphics Language
 IPL, Intermec Printer Language, a programming language for Intermec printers (now a subsidiary of Honeywell)
 KPDL, Kyocera Page Description Language
 LCDS/Metacode, a print stream format used in older high-speed printers (Xerox)
 MODCA, Mixed Object Document Content Architecture (IBM)
 MTPL, Mannesmann Tally Printer Language
 PCL, Printer Command Language (Hewlett-Packard)
 PDF, Portable Document Format (Adobe Systems), now ISO 32000
 PostScript (Adobe Systems)
 PPDS, Personal Printer Data Stream
 RPCS, Refined Printing Command Stream (Ricoh)
 RTL (Raster Transfer Language, also known as PCL3GUI). Raster graphic command subset of Hewlett-Packard HP-GL/2, similar to PCL.
 Star Line Mode, variant of ESC/POS used by Star Micronics printers
 SPL, Samsung Printer Language
 SVG, an XML-based graphics description language primarily developed for the World Wide Web
 Canon SG Raster (Swift Graphics Raster for large format printers), based on Hewlett-Packard PCL3GUI / RTL and IVEC (XML formatted job description language)
 TSPL/TSPL2, Taiwan Semiconductor Printing/Programming Language (TSMC)
 TTP, print language by Swecoin for kiosk printers (now Zebra)
 UFR (Ultra Fast Rendering), a proprietary language (Canon)
 XES, Xerox Escape Sequence
 XPS, XML Paper Specification introduced in Windows Vista (Microsoft)
 ZJS, ZjStream Page Description Language  (Zenographics)
 ZPL, Zebra Programming Language

See also
List of vector graphics markup languages
Markup language
Printer Job Language

References

External links
Undocumented Printing
Ultimate Printer Manual
Printer MIB Interpreters Language Families
Host Printing Reference — contains example for PPDS
PPDS Escape codes
ZjStream Reference

 
Computer printers
Computer printing