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.
Zro7