Print / Page-Description / Printer-Control DSLs Family Index
type: language-family-index family: print-page-description languages_catalogued: 28 tags: [language-reference, family-index, print-page-description, postscript, pdf, pcl, afp, ipds, xps, jdf, zpl, escpos, icc, ipp, ppd]
Print / Page-Description / Printer-Control — Family Index
Family overview
Print / page-description / printer-control languages are the device-facing layer of the print stack: the byte stream that actually arrives at a printer (or print spool, or RIP, or imposition system) and tells it what marks to put on what substrate. They are emphatically not authoring languages — authors write LaTeX, Word, InDesign, or Typst (see document-typesetting); those tools then produce the device-facing artifact (PostScript, PDF, PCL, AFP) that this family describes. The split matters because the design constraints are completely different: authoring languages optimise for human ergonomics and revision; page-description languages optimise for deterministic rendering, device independence, and (sometimes) interpreter cost on cheap embedded hardware.
The family’s foundational document is PostScript (Adobe, 1984), a stack-based, postfix, Turing-complete language that John Warnock and Chuck Geschke designed at Adobe after leaving Xerox PARC — and that turned Adobe into a printer-licensing empire for fifteen years. PostScript is literally a programming language in the Forth tradition (see forth-and-concatenative) — it has procedures, dictionaries, loops, and conditionals; a real PostScript file can compute its own content at print time. PDF (Adobe, 1993; ISO 32000 since 2008; current ISO 32000-2:2020 a.k.a. PDF 2.0, last reviewed and confirmed in 2026) is most cleanly understood as “PostScript with the program already executed and the result frozen as an object tree” — declarative where PostScript was imperative, and consequently cheap to render and easy to search/cache/edit.
In parallel, HP’s PCL (Printer Command Language, ~1984) carved out the cheap-laser-printer market: escape-code-driven, modest, and free of licensing fees. PCL 5 became the office workhorse; PCL 6 / PCL XL (introduced with the LaserJet 4000 series in 1995) is the modern object-oriented binary version and remains HP’s preferred enterprise PDL as of 2026. IBM’s mainframe stack (AFP, MO:DCA, IPDS) is the print world most desktop users never see — and yet every utility bill, bank statement, insurance EOB, and tax document printed at scale in the US and EU passes through it. XPS (XML Paper Specification) was Microsoft’s mid-2000s attempt to compete with PDF; it lost commercially but lives on inside Windows print pipelines as the spool format. Specialty fragmented worlds round out the family: ZPL (Zebra) is essentially uncontested in barcode/shipping labels; ESC/POS (Epson) is the de facto receipt-printer standard with Star Micronics, Citizen, Bixolon and others as parallel dialects; HPGL survives in CAD pen-plotter workflows.
Underneath everything colour-related sits the ICC profile ecosystem — ICC.1 v4 (currently ICC.1:2022, profile version 4.4.0.0) is the long-stable workhorse and ICC.2 / iccMAX (ICC.2:2023, published as ISO 20677) is the extensible next-generation alternative. Above the page-description layer, JDF / XJDF (CIP4) describe entire print-shop workflows in XML — not what to put on the page but which presses, plates, finishing steps, and substrates a job should flow through. And IPP (Internet Printing Protocol, currently PWG 5100.12-2024 with IPP Everywhere v2.0 in stable-draft as of April 2026) is the transport+attribute language that Microsoft is now mandating as Windows’ default printing path, replacing legacy V3/V4 drivers.
In our deep library
None of these page-description / printer-control DSLs have standalone deep-library notes; they live entirely in the Tier 3 encyclopedic layer. Heavy cross-references:
- document-typesetting — the authoring sibling. TeX, LaTeX, Typst, Pollen, ConTeXt, troff, and the Markdown/AsciiDoc world all eventually compile down to a member of this family (almost always PDF, sometimes PostScript). The two families are inverses: typesetting languages optimise for the writer; page-description languages optimise for the printer.
- forth-and-concatenative — PostScript is a stack-based concatenative language, a direct sibling of Forth, Joy, and Factor. Operators consume from and push to an operand stack;
dup,exch,pop,rollare all there. This is the family’s most surprising cross-reference. - api-description — IPP defines its operations and attributes via PWG schemas, JDF/XJDF are XML-Schema-described, PPD files are tagged schema-conformant ASCII. The boundary between “print-control DSL” and “print-API description” blurs here.
- notation-spec — PostScript, PDF, PCL XL, AFP MO:DCA, ZPL II, ESC/POS, and ICC profiles all have rigorous formal specifications (frequently ISO standards). These are notation specs as much as they are languages.
- assembly-and-encoding — PCL XL and IPDS structured fields are binary opcode-stream encodings closer to bytecode than to text; AFP records are tag-length-value structured fields.
- embedded-firmware — printer firmware is the interpreter for these languages. A laser printer is, in effect, a special-purpose CPU + PostScript/PCL virtual machine + raster image processor (RIP).
- codec-and-dsp — image compression inside PDF/PostScript/PCL (DCT/JPEG, JBIG2, CCITT G4, JPEG 2000, Flate) lives at the family boundary.
Tier 3 family table — Page-description core
| Language / DSL | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| PostScript (Level 1) | 1984 | Adobe (John Warnock, Chuck Geschke) | Stack-based concatenative; Turing-complete; ASCII or binary-tokenised; full programming language | Legacy / niche; PostScript 3 (1997) is still the current spec but new printer designs target PDF directly. Heavy use only in pre-press and Ghostscript-backed pipelines | https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf |
| PostScript Level 2 | 1991 | Adobe | Added colour separation, forms, patterns, composite fonts | Largely superseded; subsumed by PostScript 3 | https://www-cdf.fnal.gov/offline/PostScript/PLRM2.pdf |
| PostScript 3 | 1997 | Adobe | Current PostScript spec; smooth shading, DeviceN, in-RIP trapping | Still the current spec but no new revisions; PDF has been Adobe’s strategic focus since ~2005 | https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf |
| Encapsulated PostScript (EPS) | 1987 | Adobe | Single-page, single-bounding-box PostScript subset for embedding inside other documents | Legacy but ubiquitous in pre-press archives; modern workflows prefer PDF-embedded artwork | https://www-cdf.fnal.gov/offline/PostScript/5002.EPSF_Spec.pdf |
| PDF (ISO 32000-1) | 1993 (Adobe), ISO 2008 | Adobe → ISO TC 171 | Declarative object-tree; PostScript-derived imaging model; cross-reference-table file structure | Superseded by 32000-2 but still widely produced/consumed | https://www.iso.org/standard/51502.html |
| PDF 2.0 (ISO 32000-2:2020) | ISO 2017, revised 2020 | ISO TC 171 / PDF Association | Adds black-point compensation, soft masks improvements, improved tagged-PDF, removes proprietary Adobe-isms | Current standard (reviewed and confirmed in 2026); Amendment 1.2 in committee draft | https://www.iso.org/standard/75839.html |
| XPS (XML Paper Specification) | 2006 (Microsoft); Ecma-388 (2009); ISO/IEC 29500-1 | Microsoft | ZIP container of XML page parts; fixed-layout document model | Legacy; Microsoft itself is deprecating the XPS Viewer; lives on inside Windows print spool | https://learn.microsoft.com/en-us/windows/win32/printdocs/xps-document |
| OpenXPS / OXPS | 2009 | Ecma / Microsoft | Open-standards variant of XPS published as Ecma-388; used by Windows 8+ spool | Legacy; same trajectory as XPS | https://www.ecma-international.org/publications-and-standards/standards/ecma-388/ |
Tier 3 family table — PDF subsets / archival
| Language / DSL | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| PDF/X-1a (ISO 15930-1, -4) | 2001 | ISO TC 130 | Print-production PDF subset; all fonts embedded, CMYK only, no transparency | Still widely required by older RIPs and ad-delivery workflows | https://www.iso.org/standard/29061.html |
| PDF/X-3 (ISO 15930-3, -6) | 2002 | ISO TC 130 | PDF/X-1a + colour-managed (allows ICC, LAB, RGB tagged with profiles) | Legacy but still accepted by many magazines | https://www.iso.org/standard/39940.html |
| PDF/X-4 (ISO 15930-7:2010) | 2010 | ISO TC 130 | Based on PDF 1.6; first PDF/X to allow live transparency, layers, JPEG 2000 | The current de facto print-production standard as of 2026 | https://www.iso.org/standard/55843.html |
| PDF/X-6 (ISO 15930-9:2020) | 2020 | ISO TC 130 | Based on PDF 2.0; black-point compensation, modern output intents; ISO/CD 15930-9.3 Edition 2 in draft | Active but limited adoption — most RIPs still validated against X-4 | https://www.iso.org/standard/77103.html |
| PDF/A-1 (ISO 19005-1:2005) | 2005 | ISO TC 171 | Based on PDF 1.4; long-term archival; no encryption, no external refs, all fonts embedded | Still required by many government archives | https://www.iso.org/standard/38920.html |
| PDF/A-2 (ISO 19005-2:2011) | 2011 | ISO TC 171 | Based on PDF 1.7; adds transparency, JPEG 2000, layers | Common archival target | https://www.iso.org/standard/50655.html |
| PDF/A-3 (ISO 19005-3:2012) | 2012 | ISO TC 171 | PDF/A-2 + arbitrary-file attachments (e.g. embedded XML invoices — basis of ZUGFeRD/Factur-X) | Active, especially for e-invoicing | https://www.iso.org/standard/57229.html |
| PDF/A-4 (ISO 19005-4:2020) | 2020 | ISO TC 171 | Based on PDF 2.0; collapses A/B/U conformance levels; adds PDF/A-4e (engineering) and PDF/A-4f (attachments) | Current archival target as of 2026 | https://www.iso.org/standard/71832.html |
| PDF/UA-1 (ISO 14289-1:2014) | 2012, rev 2014 | ISO TC 171 | Accessibility-conformant tagged PDF | Current; PDF/UA-2 (based on PDF 2.0) published 2024 | https://www.iso.org/standard/64599.html |
Tier 3 family table — Printer-control layers
| Language / DSL | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| PCL 5 (Printer Command Language) | 1990 (PCL 5), HP introduced PCL in 1984 with the LaserJet | HP | ASCII + escape-code stream; HP-GL/2 subset for vector; widely cloned | Legacy office workhorse; HP still ships PCL 5 drivers but no new development | https://developers.hp.com/hp-printer-command-languages-pcl/doc/pcl-5 |
| PCL 6 / PCL XL | 1995 (LaserJet 4000) | HP | Binary, object-oriented PDL optimised for Windows GDI; tokenised opcodes | Active — HP’s “fully supported and preferred” enterprise PDL as of 2026 | https://developers.hp.com/hp-printer-command-languages-pcl/doc/hp-pcl6-pcl-xl |
| PJL (Printer Job Language) | ~1990 | HP | Plain-text job-control headers wrapping PCL/PostScript payload; @PJL SET RESOLUTION etc. | Active — almost every HP-compatible printer still speaks PJL | https://developers.hp.com/hp-printer-command-languages-pcl/doc/printer-job-language |
| AFP (Advanced Function Presentation) / MO:DCA | 1984 (AFP), MO:DCA-P 1990s | IBM, now stewarded by AFP Consortium | Structured-field binary records; device-independent page model | Active in mainframe / volume transactional print; MO:DCA Reference 10th Edition is current | https://afpcinc.org/wp-content/uploads/2017/12/MODCA-Reference-09.pdf |
| IPDS (Intelligent Printer Data Stream) | 1987 | IBM, AFP Consortium | Bidirectional MO:DCA transport; printer reports state back to host | Active, paired with AFP in mainframe environments | https://www.afpconsortium.org/uploads/1/1/8/4/118458708/ipds-reference-11.pdf |
| HPGL / HPGL/2 | 1977 (HPGL), 1990 (HPGL/2) | HP | Vector pen-plotter command language; two-letter mnemonics (PU, PD, PA) | Niche-active in CAD plotting, large-format printers, vinyl cutters | https://developers.hp.com/hp-printer-command-languages-pcl/doc/hp-gl2 |
| IBM Printer DDS | 1980s | IBM (System/3x → AS/400 → IBM i) | Data Description Specification for printer files; column-based mainframe form layout | Legacy but still in production AS/400 / IBM i shops | https://www.ibm.com/docs/en/i/7.5?topic=dds-printer-files |
Tier 3 family table — Specialty (label / receipt / plotter)
| Language / DSL | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| ZPL II (Zebra Programming Language) | 1990s (ZPL II) | Zebra Technologies | ASCII caret-prefixed command stream (^FO, ^BC, ^FS); thermal-label-printer DSL | Active and dominant; current Programming Guide P1134473-10EN Rev A (Oct 2025 / Apr 2026 copyright) | https://docs.zebra.com/us/en/printers/software/zpl-pg/zpl-ii,-zbi-2,-set-get-do,-mirror,-wml-programming-guide.html |
| EPL / EPL2 (Eltron Programming Language) | 1990s | Eltron (acquired by Zebra 1998) | Older Zebra-family label DSL; line-oriented commands | Legacy — Zebra still supports it on older printers but new development is ZPL II | https://www.zebra.com/us/en/support-downloads/knowledge-articles/ait/eltron-programming-language.html |
| DPL (Datamax Programming Language) | 1990s | Datamax-O’Neil (now Honeywell) | Competitor label-printer DSL | Active in Honeywell label-printer line | https://aiditbarcode.com/datamax-class-series-programming-language-reference-manual/ |
| TSPL / TSPL2 (TSC Printer Programming Language) | 1990s | TSC Auto ID | Competitor label-printer DSL; BASIC-like syntax | Active in TSC label printers | https://www.tscprinters.com/en/support/tspl |
| ESC/P 2 | 1992 (ESC/P 2; ESC/P from 1981) | Epson | Receipt + dot-matrix printer escape-code language | Active for receipt printers; foundation for ESC/POS | https://files.support.epson.com/pdf/general/escp2ref.pdf |
| ESC/POS | ~1990s | Epson | ESC/P variant optimised for POS receipt printers; ESC + GS prefixed commands; cash drawer kick, cutter, barcode | The de facto receipt-printer standard — supported by virtually every POS thermal printer | https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/ |
| Star Micronics receipt DSL / StarPRNT | 1990s | Star Micronics | ESC/POS-compatible mode + native Star command set | Active — Star is the #2 receipt-printer vendor after Epson | https://starmicronics.com/support/Mannualfolder/StarPRNT_CM_EN.pdf |
| Citizen / Bixolon receipt DSLs | 1990s | Citizen Systems, Bixolon | Mostly ESC/POS-compatible with vendor extensions | Active, niche | https://www.bixolon.com/_upload/info/Command%20Manual_thermal_english_Rev_1_03.pdf |
Tier 3 family table — Print-workflow / JDF / PPD / ICC / IPP
| Language / DSL | First appeared | Origin | Type | Status (2026) | URL |
|---|---|---|---|---|---|
| JDF (Job Definition Format) | 2001 | CIP4 | XML print-job ticket; full workflow description (prepress, press, postpress) | Legacy but still deployed; 1000-page spec | https://www.cip4.org/print-automation/jdf |
| XJDF (Exchange JDF / JDF 2.0) | 2018 | CIP4 | Simplified 440-page XML interchange format; replaces full JDF for new integrations | Current CIP4 recommendation | https://www.cip4.org/Books_Slides/articles/xjdf-exchange-job-definition-format-copy |
| JMF (Job Messaging Format) | 2001 | CIP4 | XML messaging companion to JDF; job-status events | Legacy alongside JDF | https://www.cip4.org/ |
| XJMF (Exchange JMF) | 2018 | CIP4 | Simplified messaging companion to XJDF | Current | https://www.cip4.org/print-automation/jdf |
| CUPS PPD (PostScript Printer Description) | 1993 (Adobe), in CUPS since late 1990s | Adobe → CUPS | Tagged ASCII driver-capability files (*Default, *OpenUI); originally just for PostScript printers, extended by CUPS | Active in CUPS but deprecated by Apple; macOS now prefers IPP Everywhere | https://www.cups.org/doc/spec-ppd.html |
| IPP (Internet Printing Protocol) | 1999 (RFC 2910), PWG-stewarded since | IETF → PWG | HTTP-based attribute-based printing protocol; the attribute set itself is a DSL | Current — PWG 5100.12-2024 (IPP/2.x Fourth Edition); Microsoft mandating IPP as Windows default starting 2026 | https://www.pwg.org/ipp/ |
| IPP Everywhere | 2013, v2.0 stable-draft April 2026 | PWG | Driverless-printing profile of IPP | Active; v2.0 (EVE) in stable draft as of 30 April 2026 | https://www.pwg.org/ipp/everywhere.html |
| ICC.1 v4 profile format | 1994 (ICC founded), v4 in 2001, current ICC.1:2022 | International Color Consortium | Binary colour-profile format; PCS = CIELAB / CIEXYZ; tag-based | Current — profile version 4.4.0.0; recommended for almost all use | https://www.color.org/v4spec.xalter |
| ICC.2 / iccMAX | 2016 preliminary, ICC.2:2023 final | ICC; also ISO 20677 | Next-generation extensible profile format; spectral / material connection spaces; multi-process elements | Active alternative for advanced cases; not a replacement for ICC.1 v4 | https://www.color.org/iccmax/ |
| CIP3 PPF (Print Production Format) | 1995 | CIP3 (predecessor to CIP4) | PostScript-based pre-press DSL for ink-zone settings, register marks, cutting data | Legacy — superseded by JDF/XJDF but still found in older press control panels | https://www.cip4.org/print-automation/cip3-ppf |
Notable threads
-
PostScript is Forth-with-graphics. This is the most surprising thing about the family. A
.psfile is a real program: it has variables, dictionaries, procedures, control flow, and arithmetic; it executes on a stack-based virtual machine inside the printer. Adobe’s design choice — make the file format a programming language — was simultaneously brilliant (infinite expressiveness, device independence) and expensive (every printer needed a full interpreter, and bugs in user PostScript could literally hang printers for hours). The cross-reference to forth-and-concatenative is not metaphorical; PostScript belongs in the Forth family tree, alongside Joy and Factor. This is also why Adobe could licence the interpreter to printer OEMs at premium prices for fifteen years — implementing a full PostScript Level 2/3 interpreter is genuinely hard. -
PDF ate PostScript’s lunch by freezing the program output. A PDF file is what a PostScript program would have produced if you ran it once — a flat object tree of content streams, fonts, images, and resources, addressable by a cross-reference table at the end of the file. No loops, no conditionals, no interpreter state. This makes PDF cheap to render (just walk the tree), cheap to cache (no side effects), cheap to search (text is already extracted), and cheap to edit (replace an object, update the xref). PDF 1.0 shipped in 1993; PDF became ISO 32000 in 2008; the current standard is ISO 32000-2:2020 (PDF 2.0), which was reviewed and confirmed in 2026 and now has Amendment 1.2 in committee draft. The transition was not Adobe’s accident — Adobe deliberately built PDF as PostScript’s evolutionary replacement.
-
PCL won the cheap-laser-printer market by being unencumbered. HP shipped LaserJets without paying Adobe’s PostScript licence fee, undercut Apple LaserWriters by hundreds of dollars, and made PCL 5 the office workhorse for two decades. PCL 6 / PCL XL (introduced 1995, still HP’s preferred enterprise PDL in 2026) replaced the escape-code text stream with a tokenised binary opcode stream that maps almost directly onto Windows GDI primitives — faster to generate from a Windows driver, faster to RIP, smaller on the wire. The PCL → PCL XL evolution is essentially “PostScript-style imaging model + bytecode encoding” — a credible PostScript competitor without the licence fee.
-
AFP/IPDS is the print stack most desktop users never see. Every monthly utility bill, bank statement, credit-card statement, insurance EOB, and pension notice mailed in volume in the US and EU goes through IBM’s AFP (Advanced Function Presentation) → MO:DCA → IPDS pipeline. AFP was designed for high-volume transactional print — variable data, bidirectional printer reporting (IPDS lets the printer tell the host “I jammed on page 1,247 — please reprint from there”), and resource management at industrial scale. The Mixed Object Document Content Architecture Reference is on its 10th Edition, stewarded by the AFP Consortium after IBM externalised the standards work. If you have ever opened a credit-card statement, you have read AFP output.
-
XPS lost commercially but lives on inside Windows. Microsoft’s 2006 attempt to dethrone PDF — XPS (XML Paper Specification), then OpenXPS / OXPS standardised as Ecma-388 — failed to gain traction in the marketplace; Adobe’s PDF ecosystem was already universal, and XPS offered no compelling user-visible advantage. But XPS quietly persisted as the internal Windows print-spool format: when an app prints, the Windows print subsystem renders to an XPS spool file before converting to whatever the printer speaks. Microsoft deprecated the XPS Viewer in Windows 10 but the format remains structurally important. As of 2026, Microsoft is also moving to make IPP / IPP Everywhere the default print path, with V3/V4 third-party drivers being deprecated from Windows Update starting January 2026 — a separate but related modernisation.
-
ZPL’s quiet dominance in labels. Almost every shipping label, warehouse bin tag, prescription label, and product barcode printed in 2026 is ZPL II. Zebra Technologies essentially owns the thermal-barcode-printer market; the ZPL II Programming Guide (P1134473-10EN Rev A, copyright April 2026) is the active reference. Competitors exist — Datamax (DPL, now Honeywell), TSC (TSPL/TSPL2), and SATO — but ZPL II is the lingua franca; even non-Zebra label printers often offer a ZPL-emulation mode because integrators write to ZPL and expect any printer to render it.
-
Receipt-printer ecosystem fragmentation, anchored by ESC/POS. Epson’s ESC/POS (and its ancestor ESC/P 2) is the de facto receipt-printer standard. Star Micronics has its own native StarPRNT command set but ships ESC/POS-compatible mode on every printer; Citizen, Bixolon, Custom, and SNBC do the same. The result: POS-system developers write to ESC/POS as the lowest-common-denominator, configure printer-specific quirks (paper-cut behaviour, cash-drawer-kick pin, font set) per-driver, and accept that no two ESC/POS implementations agree on edge cases. Receipt printers are also surprisingly stateful — text styles persist until reset, which has caused production bugs at every POS company.
-
ICC profiles are the colour-management substrate under everything. Every colour-managed pipeline — PDF/X-4, PDF/X-6, PostScript 3, modern PCL, AFP, printer drivers, display profiles, camera profiles, scanners — uses ICC profiles to map between device-dependent colour spaces (CMYK, RGB, scanner native, camera raw) and a device-independent profile-connection space (CIELAB or CIEXYZ). ICC.1 v4 (current ICC.1:2022, profile version 4.4.0.0) is the long-stable workhorse; ICC.2 / iccMAX (ICC.2:2023, also published as ISO 20677) is the next-generation extensible alternative for spectral colour, material connection spaces, and multi-process elements — useful for textile, packaging, and HDR work but not a replacement for v4 in mainstream print.
-
JDF/XJDF describes shops, not pages. JDF (Job Definition Format) and its 2018 successor XJDF (Exchange JDF, sometimes called JDF 2.0) are XML languages that describe an entire print-shop workflow: this PDF gets preflighted with these settings, imposed onto these plates, printed on this press with these ink-zone settings (often via legacy CIP3 PPF), then folded/stitched/trimmed on this finishing line. The original JDF spec is ~1000 pages; XJDF is a deliberately slimmer ~440-page interchange-only redesign. Most production shops in 2026 run both in parallel — XJDF for new MIS-to-press integrations, legacy JDF tickets for older equipment that does not speak XJDF yet. JMF / XJMF are the companion messaging formats (job status, alerts).
Citations
- PostScript Language Reference Manual 3rd Edition (Adobe, 1999): https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf
- Encapsulated PostScript File Format Specification 3.0 (Adobe): https://www-cdf.fnal.gov/offline/PostScript/5002.EPSF_Spec.pdf
- ISO 32000-2:2020 PDF 2.0: https://www.iso.org/standard/75839.html
- PDF Association — ISO 32000-2 (free copy, with errata bundle): https://pdfa.org/resource/iso-32000-2/
- ISO 15930 PDF/X family overview: https://pdfa.org/resource/iso-15930-pdfx/
- ISO 15930-7:2010 PDF/X-4: https://www.iso.org/standard/55843.html
- ISO 15930-9:2020 PDF/X-6: https://www.iso.org/standard/77103.html
- ISO 19005 PDF/A family overview: https://pdfa.org/resource/iso-19005-pdfa/
- ISO 19005-4:2020 PDF/A-4: https://www.iso.org/standard/71832.html
- ISO 14289-1 PDF/UA: https://www.iso.org/standard/64599.html
- HP PCL 5 reference (HP Developers Portal): https://developers.hp.com/hp-printer-command-languages-pcl/doc/pcl-5
- HP PCL 6 / PCL XL reference: https://developers.hp.com/hp-printer-command-languages-pcl/doc/hp-pcl6-pcl-xl
- HP PCL XL Feature Reference Protocol Class 2.x: https://developers.hp.com/system/files/attachments/PCL6_XL_Feature%20Ref%20Protocol%20Class%202x0.pdf
- HP PJL Reference: https://developers.hp.com/hp-printer-command-languages-pcl/doc/printer-job-language
- AFP Consortium MO:DCA Reference (10th Edition): https://afpcinc.org/wp-content/uploads/2017/12/MODCA-Reference-09.pdf
- AFP Consortium IPDS Reference: https://www.afpconsortium.org/uploads/1/1/8/4/118458708/ipds-reference-11.pdf
- Microsoft XPS Document spec: https://learn.microsoft.com/en-us/windows/win32/printdocs/xps-document
- Ecma-388 OpenXPS: https://www.ecma-international.org/publications-and-standards/standards/ecma-388/
- CIP4 JDF / XJDF: https://www.cip4.org/print-automation/jdf
- CIP4 XJDF specification (GitHub): https://github.com/cip4/JDF-Specification
- CUPS PPD specification: https://www.cups.org/doc/spec-ppd.html
- PWG IPP workgroup: https://www.pwg.org/ipp/
- IPP Everywhere: https://www.pwg.org/ipp/everywhere.html
- Zebra ZPL II / ZBI 2 / SGD Programming Guide (P1134473-10EN Rev A, 2026): https://docs.zebra.com/us/en/printers/software/zpl-pg/zpl-ii,-zbi-2,-set-get-do,-mirror,-wml-programming-guide.html
- Epson ESC/POS Command Reference for TM Printers: https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/
- Epson ESC/P 2 Reference Manual: https://files.support.epson.com/pdf/general/escp2ref.pdf
- ICC.1 v4 specification (current ICC.1:2022): https://www.color.org/v4spec.xalter
- ICC.2 / iccMAX (ICC.2:2023, ISO 20677): https://www.color.org/iccmax/
- iccMAX status page: https://www.color.org/iccmax-status.xalter