Glossary8 min

A Glossary of PDF Terms Every Developer Should Know

PDF versions, xref tables, streams, encryption dictionaries, forms — plain-English definitions of the terms you'll hit debugging PDFs.

PDF is deceptively complex. This glossary defines the terms you'll encounter reading PDF specs, debugging broken files, or writing code with libraries like pdf-lib, pdfjs, or Ghostscript. Use it as a reference alongside Zro7 Inspect PDF.

File structure

  • Header: first 8 bytes, e.g. %PDF-1.7. Declares the PDF version.
  • Body: sequence of objects (pages, fonts, images).
  • xref table: byte-offset index into every object. Broken xref = 'corrupted PDF'.
  • Trailer: points to the root object and xref.
  • Cross-reference stream: a compressed xref, standard since PDF 1.5.
  • Incremental update: new objects appended without rewriting the whole file (how form saves work).

Objects

  • Indirect object: 12 0 obj … endobj — the fundamental unit.
  • Direct object: literal in-line (numbers, strings, dictionaries).
  • Dictionary: << /Key /Value >> — like JSON.
  • Stream: dictionary + binary data (compressed page content, images, fonts).
  • Object stream: multiple objects packed together, since PDF 1.5.

Content and rendering

  • Content stream: PostScript-like operators (BT, Tj, ET) that draw a page.
  • Resources: fonts and images referenced by the content stream.
  • Form XObject: reusable graphics, e.g. a logo drawn on every page.
  • Annotations: overlays — sticky notes, highlights, links.
  • MediaBox / CropBox / TrimBox / BleedBox / ArtBox: page bounding rectangles (print vs display).

Fonts

  • Type 1 / TrueType / CFF: font formats a PDF may embed.
  • Type 3: fonts defined with PDF drawing operators — used by TeX.
  • Subsetting: embedding only the glyphs used, to shrink file size.
  • ToUnicode CMap: mapping from glyph IDs to Unicode — without it, copy-paste and search break.

Encryption

  • User password: required to open. Enforced by the reader.
  • Owner password: required to change permissions.
  • Permissions bits: printing, copying, annotating, form-filling. Honored voluntarily by readers.
  • V/R (Version/Revision): encryption algo version — V6/R6 = AES-256, current best practice.

Forms

  • AcroForm: the classic PDF form (fields as annotations).
  • XFA: XML-based form (Adobe-proprietary, deprecated since PDF 2.0).
  • Field flattening: bakes form values into page graphics — flatten with Zro7.

Standards & conformance

  • PDF/A: archival profile — no external deps, no encryption.
  • PDF/X: print-ready profile — CMYK, embedded fonts required.
  • PDF/UA: accessibility profile — tagged structure mandatory.
  • Linearized (Fast Web View): reorganized so the first page renders before the whole file downloads.

Debugging

  • Malformed xref: fix with a repair pass — Zro7 Repair PDF.
  • Encrypted stream: needs decryption before you can inspect content.
  • Filter chain: /Filter [/FlateDecode /ASCIIHexDecode] — apply in order.

Updated January 1, 2027 · Zro7 editorial team.

Related posts

← Back to blog