# Page description language

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Page_description_language
> Markdown URL: https://mediated.wiki/source/Page_description_language.md
> Source: https://en.wikipedia.org/wiki/Page_description_language
> Source revision: 1355998033
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Computer language

This article needs more citations. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Page description language" – news · newspapers · books · scholar · JSTOR (May 2020) (Learn how and when to remove this message)

In [digital printing](/source/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](/source/Bitmap) (or generally [raster graphics](/source/Raster_graphics)). An overlapping term is **printer control language**, which includes Hewlett-Packard's [Printer Command Language](/source/Printer_Command_Language) (PCL). [PostScript](/source/PostScript) is one of the most noted page description languages. The [markup language](/source/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](/source/Application_programming_interface) (APIs) such as [GDI](/source/Graphics_Device_Interface) and [OpenGL](/source/OpenGL) that can be called by software to generate graphical output.

## Notable examples

Various page description languages exist:

- [AFP](/source/Advanced_Function_Presentation), Advanced Function Presentation ([IBM](/source/IBM))

- Apple Raster, formerly known as URF, used by the [AirPrint](/source/AirPrint) protocol.[1]

- [Canon](/source/Canon_Inc.) GARO, Graphic Arts language with Raster Operations (for large format printers), based on [Hewlett-Packard](/source/Hewlett-Packard) PCL3GUI / RTL and CPCA job description language.[2]

- Common Ground page definition language

- CPCL, Comtec Printer Control Language (now Zebra)

- [DjVu](/source/DjVu), a mixed raster content (MRC) format supporting OCR-based scanned documents ([AT&T Labs](/source/AT%26T_Labs))

- DPL, Datamax Printer Language (now [Honeywell](/source/Honeywell#Acquisitions))[3]

- DTPL, Datamax Ticket Printer Language

- [DVI](/source/DVI_file_format), Device Independent, output from [TeX](/source/TeX)

- E411, Emulation 411, for Ticketing and Flight Strip (ATC) systems (IER)

- EPL, Eltron Programming Language (now Zebra)

- [Envoy](/source/Envoy_(WordPerfect)) page description language ([WordPerfect](/source/WordPerfect))

- [ESC/P](/source/ESC%2FP), [Epson](/source/Epson) Standard Code for Printers, simple language mainly used in [dot matrix printers](/source/Dot_matrix_printer)

- 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](/source/ESC%2FPOS), [Epson](/source/Epson) Standard Code for [POS](/source/Point_of_sale) printers

- FGL, Friendly Ghost Language (Boca Systems) printers

- Fingerprint, a programming language, Direct Protocol is subset of Fingerprint ([Intermec](/source/Intermec))

- [HP-GL](/source/HP-GL) and HP-GL/2, geometric language introduced by [Hewlett-Packard](/source/Hewlett-Packard) for pen plotters, still in use today for technical drawings

- [Interpress](/source/Interpress) ([Xerox](/source/Xerox))

- IJPDS, Ink Jet Printer Data Stream ([Kodak](/source/Kodak))

- [IPDS](/source/IBM_Intelligent_Printer_Data_Stream), Intelligent Printer Data Stream (IBM)

- IGP/PGL, [Printronix](/source/Printronix) Graphics Language

- IPL, Intermec Printer Language, a programming language for [Intermec](/source/Intermec) printers (now a subsidiary of [Honeywell](/source/Honeywell#Acquisitions))

- KPDL, [Kyocera](/source/Kyocera) Page Description Language

- LCDS/Metacode, a print stream format used in older high-speed printers ([Xerox](/source/Xerox))

- [MODCA](/source/MODCA), Mixed Object Document Content Architecture (IBM)

- MTPL, Mannesmann Tally Printer Language

- [PCL](/source/Printer_Command_Language), Printer Command Language ([Hewlett-Packard](/source/Hewlett-Packard))

- [PDF](/source/Portable_Document_Format), Portable Document Format ([Adobe Systems](/source/Adobe_Systems)), now ISO 32000[4]

- [PostScript](/source/PostScript) ([Adobe Systems](/source/Adobe_Systems))

- [PPDS](/source/IBM_Personal_Printer_Data_Stream), Personal Printer Data Stream

- [RPCS](/source/Refined_Printing_Command_Stream), Refined Printing Command Stream ([Ricoh](/source/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](/source/Star_Micronics) printers

- SPL, Samsung Printer Language[5]

- [SVG](/source/Scalable_Vector_Graphics), an XML-based graphics description language primarily developed for the [World Wide Web](/source/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](/source/TSMC))

- TTP, print language by Swecoin for kiosk printers (now Zebra)

- UFR (Ultra Fast Rendering), a proprietary language (Canon)

- XES, [Xerox Escape Sequence](/source/Xerox_Escape_Sequence)

- [XPS](/source/Open_XML_Paper_Specification), Open XML Paper Specification introduced in Windows Vista ([Microsoft](/source/Microsoft))

- ZJS, ZjStream Page Description Language (Zenographics)

- ZPL, [Zebra Programming Language](/source/Zebra_(programming_language)) ([Zebra Technologies](/source/Zebra_Technologies))

## See also

- [List of vector graphics markup languages](/source/List_of_vector_graphics_markup_languages)

- [Markup language](/source/Markup_language)

- [Printer Job Language](/source/Printer_Job_Language)

## References

1. **[^](#cite_ref-1)** ["Driverless Printing Standards And their PDLS"](https://openprinting.github.io/driverless/01-standards-and-their-pdls/). *OpenPrinting*. 29 April 2022.

1. **[^](#cite_ref-2)** ["White Paper - Canon imagePROGRAF PAGE DESCRIPTION LANGUAGES (PDLS)"](https://web.archive.org/web/20131228134307/http://www.cmrepro.com/documents/CanonUnderstandingPDLs.pdf) (PDF). Canon. Archived from [the original](http://www.cmrepro.com/documents/CanonUnderstandingPDLs.pdf) (PDF) on 28 December 2013. Retrieved 13 June 2013.

1. **[^](#cite_ref-3)** Honeywell, Inc. (2021). [*DPL command Reference*](https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/ppr/ja/public/products/printers/common/documents/sps-ppr-dpl-88-2360-01-b.pdf) (PDF). Retrieved August 7, 2022.

1. **[^](#cite_ref-4)** ["PDF format becomes ISO standard"](https://web.archive.org/web/20160303234754/http://www.iso.org/iso/news.htm?refid=Ref1141). Archived from [the original](http://www.iso.org/iso/news.htm?refid=Ref1141) on 2016-03-03. Retrieved 2015-02-02.

1. **[^](#cite_ref-5)** Croc, Aurélien. ["SPL Specifications"](https://web.archive.org/web/20180407050923/http://splix.sourceforge.net/specs.html). *SpliX Drivers for your printer*. Archived from [the original](https://splix.sourceforge.net/specs.html) on April 7, 2018. Retrieved Feb 26, 2018.

## External links

- [Undocumented Printing](https://web.archive.org/web/20070104033902/http://www.undocprint.org/formats/page_description_languages)

- [Ultimate Printer Manual](https://web.archive.org/web/20200218185432/http://www2.nefec.org/UPM/ilang.htm)

- [Printer MIB Interpreters Language Families](https://web.archive.org/web/20060603084839/http://www.iana.org/assignments/printer-language-numbers)

- [Host Printing Reference](https://web.archive.org/web/20131228152246/http://www-01.ibm.com/software/webservers/hostondemand/library/infocentergafinal/hod/en/doc/hostprint/hostprintref.html) — contains example for PPDS

- [PPDS Escape codes](http://knowledgebase.lexmark.com/pubfiles/files/PATTLNK_2182005_1515-PPDS%20Escape%20Codes.pdf) [Archived](https://web.archive.org/web/20090909133822/http://knowledgebase.lexmark.com/pubfiles/files/PATTLNK_2182005_1515-PPDS%20Escape%20Codes.pdf) 2009-09-09 at the [Wayback Machine](/source/Wayback_Machine)

- [ZjStream Reference](https://web.archive.org/web/20020830075425/http://ddk.zeno.com/Reference/ZjStream/Default.htm)

v t e Programming paradigms Imperative Structured Jackson structures Block-structured Modular Non-structured Procedural Programming in the large and in the small Design by contract Invariant-based Nested function Object-oriented Class-based, Prototype-based, Object-based Agent Immutable object Persistent Uniform function call syntax Declarative Functional Recursive Anonymous function (Partial application) Higher-order Purely functional Total Strict GADTs Dependent types Functional logic Point-free style Expression-oriented Applicative, Concatenative Function-level, Value-level Monad Dataflow Flow-based Reactive (Functional reactive) Signals Streams Synchronous Logic Abductive logic Answer set Constraint (Constraint logic) Inductive logic Nondeterministic Ontology Probabilistic logic Query Domain- specific language (DSL) Algebraic modeling Array Automata-based (Action) Command (Spacecraft) Differentiable End-user Grammar-oriented Interface description Language-oriented List comprehension Low-code Modeling Natural language Non-English-based Page description Pipes and filters Probabilistic Quantum Scientific Scripting Set-theoretic Simulation Stack-based System Tactile Templating Transformation (Graph rewriting, Production, Pattern) Visual Concurrent, parallel Actor-based Automatic mutual exclusion Choreographic programming Concurrent logic (Concurrent constraint logic) Concurrent OO Macroprogramming Multitier programming Organic computing Parallel programming models Partitioned global address space Process-oriented Relativistic programming Service-oriented Structured concurrency Metaprogramming Attribute-oriented Automatic (Inductive) Dynamic Extensible Generic Homoiconicity Interactive Macro (Hygienic) Metalinguistic abstraction Multi-stage Program synthesis (Bayesian, by demonstration, by example, vibe coding) Reflective Self-modifying code Symbolic Template Separation of concerns Aspects Components Data-driven Data-oriented Event-driven Features Literate Roles Subjects Comparisons/Lists Comparison (multi-paradigm, object-oriented, functional), List (OO, by type)

---
Adapted from the Wikipedia article [Page description language](https://en.wikipedia.org/wiki/Page_description_language) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Page_description_language?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
