Skip to main content
Online Tool

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.

3 modules
2x

Drops the right row indicators — saves width but needs a modern scanner.

Encoded payload
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

  1. 1Step 1
    Paste your data

    ASCII text, digits or Latin-1 — up to 1850 characters.

  2. 2Step 2
    Pick 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.

  3. 3Step 3
    Set columns / row height

    Auto picks a balanced shape. Force a column count to hit a fixed label width.

  4. 4Step 4
    Tune module scale

    Bigger = scans further at the cost of label real estate.

  5. 5Step 5
    Download 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.

Frequently asked questions

Related tools