PDF417 Generator
Encode up to 1850 characters as a PDF417 2D stacked barcode. Adjustable error correction, columns and row height. Download as PNG or SVG — fully client-side.
94 / 1850 characters. PDF417 supports ASCII text, digits and Latin-1 binary.
Drops the right row indicators — saves width but needs a modern scanner.
PDF417 is a 2D stacked barcode used on driver's licences, boarding passes and shipping labels.Files are generated on your device — nothing is uploaded.
About the PDF417 generator
PDF417 is a stacked linear 2D symbology that packs up to ~1850 alphanumeric characters (or about 1100 bytes of binary data) into a row-and-column grid. Unlike QR or Data Matrix, PDF417 stays readable when individual rows are missing — it has been the workhorse for US and Canadian driver's licences (AAMVA standard), airline boarding passes (IATA BCBP), and a long tail of shipping, manifesting and government ID applications.
This generator renders PDF417 directly in your browser with the open-source bwip-js library. Tune the error-correction level, column count and row height for your label size and printer; switch to PDF417 Compact when you need to squeeze the symbol into a narrower space and your reader software supports it.
When to use it
- Encoding driver's licence or government-issued ID data fields (AAMVA).
- Producing IATA BCBP boarding passes for pilots / agents.
- Shipping and manifesting labels where Data Matrix isn't acceptable.
- Storing structured records (CSV / JSON) up to ~1.8 KB on a single label.
- Marking high-value parts where partial damage shouldn't kill the read.
- Embedding cross-reference data on the back of a printed certificate or pass.
How it works
- 1Step 1Paste your data
ASCII text, digits or Latin-1 — up to 1850 characters.
- 2Step 2Pick an EC level
Level 5 is the broad recommendation. Bump to 6+ for harsh surfaces, drop to 2–3 only for clean, high-DPI prints.
- 3Step 3Set columns / row height
Auto picks a balanced shape. Force a column count to hit a fixed label width.
- 4Step 4Tune module scale
Bigger = scans further at the cost of label real estate.
- 5Step 5Download PNG or SVG
SVG for print, PNG for screen mock-ups and slide decks.
What to avoid
- Don't drop EC below 3 for plastic / laminated cards — even small smudges can break the symbol.
- Don't force a tiny column count for a long payload — the row count balloons and scanning gets unreliable.
- Don't use Compact PDF417 unless you control the scanner — many legacy readers fail on it.
- Don't print smaller than ~4 mil module width on thermal printers — bar-edge growth eats the row indicators.
- Don't shove binary data through without telling downstream code what encoding to expect.
Tips & tricks
- Export as SVG and rasterise to PNG only for the final asset — vector means you can scale to any printer.
- Round-trip-test by scanning the generated label with the device that will read it in production.
- For boarding passes follow the IATA BCBP field layout exactly; readers reject anything off-spec.
- If you can choose, AAMVA-style ID payloads should use EC level 5 or 6 to survive laminated card wear.
- Compact PDF417 only saves width — if you're vertically constrained, raise the column count instead.
Private by default
PDF417 barcodes are rendered locally with bwip-js. The text you encode never touches our servers.