Axon Toolbox

Free telecom & identity tools · runs in your browser

Free tool

PDF417 Generator

Encode any text as a scannable PDF417 barcode — ISO/IEC 15438, the stacked symbology used on driving licences, ID cards and boarding passes — or build a spec-shaped AAMVA driving-licence payload directly.

PDF417 Generator

Pick a source, then tune compaction, error correction and size. The symbol updates live — there's nothing to press to see it.

84 characters

Symbol details

Valid — checksum passes

Encoding mode
Auto (mixed)
Data codewords
59
including length descriptor and padding
Error correction
Level 3
16 codewords · corrects up to 8 errors
Symbol size
15 rows × 5 columns
Total codewords
75 / 928
Capacity used
8%
75 cells in this layout

Codewords

75 codewords · 5 columns × 15 rows

59 817 589 468 854 589 810 704 412 257 131 138 568 537 74 388 597 584 431 44 718 597 453 178 121 226 816 133 137 19 437 859 809 901 226 128 148 900 795 95 844 37 807 574 559 795 24 344 3 853 782 2 196 7 482 179 900 900 900 378 545 672 768 815 839 701 247 517 190 691 344 282 773 310 438

Every payload this tool produces is synthetic test data. The AAMVA encoding is genuinely spec-correct, but the sample name, address and IIN (Issuer Identification Number) do not belong to any real person or issuing authority.

How a PDF417 symbol is structured

PDF417 stacks 3 to 90 rows of bars, each row 17 modules wide per codeword plus a fixed start pattern, two row-indicator codewords and a stop pattern. Every codeword — a value from 0 to 928 — maps to one of 2,787 possible 17-module bar/space patterns, split across three "clusters" so a scanner can tell which row of a multi-row symbol it is reading even if the page is rotated or skewed.

The elements of one PDF417 row
DigitsSegmentMeaning
StartStart patternA fixed 17-module pattern, identical on every row of every PDF417 symbol.
LLeft row indicatorEncodes the row number, total row count and error-correction level, so a partially-scanned symbol can still be reassembled.
1…CData codewordsThe compacted message data, plus padding and Reed–Solomon error-correction codewords, C per row.
RRight row indicatorThe row’s companion indicator — column count and error-correction level.
StopStop patternAn 18-module pattern — one module wider than every other element — marking the end of the row.

Data is packed using whichever compaction mode is most efficient for it: Text (2 characters per codeword), Numeric (up to 2.93 digits per codeword) or Byte (1.2 bytes per codeword, for anything else, including non-Latin text). Auto mode switches between them automatically as it scans the input.

Why generate test PDF417 data?

Anything that reads driving licences, ID cards or shipping labels — age-verification kiosks, KYC onboarding, warehouse scanners, border systems — needs realistic PDF417 symbols to test against: the decoder logic, the error-correction tolerance, and the physical camera or laser scanner reading a printed or on-screen barcode.

Using a real driving licence in a test environment risks exposing genuine personal data. A synthetic AAMVA payload is structurally and arithmetically correct — it decodes exactly like a real one — without any real person's details ever entering your test systems.

Frequently asked questions

What is PDF417?
A stacked linear barcode symbology (ISO/IEC 15438) — several short rows of bars stacked into a rectangle, rather than one long strip like Code 128. It can hold up to about 1,800 text characters or 2,700 digits in a single symbol, with selectable Reed–Solomon error correction, which is why it is the barcode used on nearly every North American driving licence and ID card, plus many boarding passes and shipping labels.
What is the AAMVA format?
A structured data layout — defined by the American Association of Motor Vehicle Administrators — for what goes inside the PDF417 barcode on a driving licence or ID card: name, address, date of birth, licence number and more, each as a 3-letter element code (e.g. DCS for surname) followed by its value. This tool can build a spec-shaped AAMVA payload and encode it, or decode one you already have.
How is error correction level chosen?
Auto follows the ISO/IEC 15438 recommended table (higher levels for larger payloads), then reduces it again if the data would otherwise need more than 928 total codewords. Real-world driving licences typically use level 5, which is why that is the AAMVA preset’s default — pick a lower level for a smaller symbol, or a higher one for more damage tolerance.
Can this tool read a PDF417 barcode from a photo?
No — only the AAMVA text payload, if you already have it as a string. Decoding an actual photographed or scanned barcode image needs binarisation, skew and perspective correction, and Reed–Solomon erasure decoding — a substantially different, camera-driven tool, not a text-in/text-out generator like this one.
Is this real driving licence data?
No. Every value in the AAMVA preset is synthetic test data — a placeholder name, a fictional two-letter jurisdiction code, and an IIN (Issuer Identification Number) that does not belong to any real issuing authority. The encoding itself is genuinely spec-correct, so it is suitable for testing scanners and parsers, but it does not represent any real person or government-issued credential.