PDF417

PDF417 is the stacked-linear 2D barcode that appears on the back of every US driver license, on most US passports, on FedEx/UPS airbills, and on countless government forms. It's the only 2D symbology that can be read reliably by 1D laser scanners — which is why institutions with million-dollar installed scanner bases haven't moved off it in 30 years.

Canonical spec: ISO/IEC 15438:2015 — Information technology — Automatic identification and data capture techniques — PDF417 bar code symbology specification.
AAMVA application: AAMVA Card Design Standard v10 — mandates PDF417 for US/Canadian driver licenses.
Originator: Symbol Technologies (now Zebra), 1991. Name stands for "Portable Data File, 4 bars, 17 modules."

What it is

Physically, a PDF417 symbol is a stack of horizontal rows — each row is a linear barcode. A full-size PDF417 looks like a tall narrow brick with ~3–90 rows, where each row carries a slice of the overall payload. Because every row starts with a start pattern and ends with a stop pattern, PDF417 can be decoded by a scanning laser sweeping left-to-right row by row — no 2D imager required.

Each codeword is 17 modules wide, built from 4 bars and 4 spaces (hence "4/17"). The payload is split across codewords using one of three "compaction modes":

Capacity (rows × columns)

PDF417 size is specified as rows × data columns. Max is 90 rows × 30 data columns = 2,700 data codewords. Approximate alphanumeric capacity:

Rows × data colsMax alphanumericTypical use
3 × 1~3 charsMinimum viable symbol
10 × 3~30 charsShort IDs, short URLs
20 × 5~100 charsBoarding pass, short AAMVA
30 × 8~250 charsFedEx airbill
40 × 12~500 charsFull AAMVA driver license
90 × 30~1,800 charsTheoretical max — rarely used

Error correction levels (0–8)

PDF417 defines 9 levels of Reed-Solomon error correction, adding 2, 4, 8, 16, 32, 64, 128, 256, or 512 codewords of ECC. Higher levels handle more damage but cost payload capacity.

ECC levelECC codewordsTypical use% overhead
02Experimental only~0.1%
14Short codes, controlled environment~0.2%
28Small payloads~0.4%
316Medium payloads, indoor scanning~0.8%
432Default for short documents~1.5%
564Real-world default — airbills, boarding passes, AAMVA~3%
6128High-damage environments~6%
7256Crumpled / outdoor / industrial~12%
8512Extreme environments~25%

Macro PDF417 (multi-symbol payloads)

When a payload exceeds the 1,800-char cap, PDF417 supports Macro PDF417 — the payload is split across up to 99,999 separate symbols, each tagged with a Macro index and File ID. The scanner reads all symbols in any order, reassembles, and emits a single decoded payload. Rare in practice outside specialist document scanning.

Canonical test vectors

CasePayloadExpected substring
GS1 airbill (FedEx-style)123456789012345 FEDEX 2026-04-20FEDEX
AAMVA driver license (minimal)@\n\x1e\rANSI 636014100002DL00410241ZVZVA01DAQA123456789ANSI 636014
Short plain URLhttps://example.com/doc/X1234example.com/doc/X1234
Long receipt / invoiceINV:2026-04-19 VENDOR:ACME TOTAL:$1,234.56 TAX:$98.76 …ACME

Common pitfalls

Scanner compatibility

ReaderPDF417 supportNotes
iOS Camera (iOS 17+)AAMVA-onlyNative Wallet flow for US driver licenses. General PDF417 payloads don't decode.
Android Camera (OEM-dependent)PartialSamsung + Pixel stock cameras decode inconsistently. Google Lens partial.
Google LensUnreliableNot a viable verification path for production.
US DMV / kiosk scannerYes (canonical)This is what PDF417 was designed for — every DMV and liquor kiosk reads PDF417 natively.
Airline boarding-pass readerSome carriersMost airlines moved to Aztec; a few (ANA, JAL, legacy US carriers) still accept PDF417 boarding passes.
FedEx / UPS airbill readerYes (canonical)Laser scanners at every sorting facility read PDF417 natively.
1D laser scannerYesUnique advantage vs Aztec / Data Matrix — 1D lasers CAN decode PDF417.
Zebra / Honeywell / Datalogic imagerYesEvery industrial 2D imager supports PDF417.
Scandit / Dynamsoft SDKYesFull support including Macro PDF417.

See also

Spec references verified 2026-04-19. ISO/IEC 15438:2015, AAMVA CDS v10. Next review: 2026-07-19.