PDF417 Barcode Generator
Generate PDF417 barcodes for IDs, logistics, transportation, structured records and other applications requiring larger encoded datasets.
Barcode & Matrix Generator
Live Studio Preview
Code 128 Batch Serial Number Generator
Generate sequential Code 128 barcodes for warehouse SKUs, asset tags, inventory labels, and other internal identifiers.
PDF417 Barcode Generator
Quick answer: PDF417 is a stacked 2D barcode symbology defined in ISO/IEC 15438:2015. Each codeword is 17 modules wide and consists of 4 bars and 4 spaces — that structure gives the format its name. Maximum capacity at error correction level 0 is 2,710 numeric digits, 1,850 text characters or 1,108 bytes.
What a PDF417 barcode is
PDF417 stands for Portable Data File 417. The name describes the symbol structure: each codeword is 17 modules wide and consists of 4 bars and 4 spaces, with the largest element spanning 6 modules.
PDF417 is defined in ISO/IEC 15438:2015. It is a continuous, multi-row, stacked 2D symbology — not a matrix like Data Matrix or QR Code, but a series of linear rows stacked one above the other. A reader decodes each row in sequence and assembles the full data payload. This design means a standard 1D laser scanner cannot read PDF417; the reader must be capable of scanning multiple rows and combining the result.
Each PDF417 symbol can contain 3 to 90 rows and 1 to 30 columns of data codewords, giving a highly configurable aspect ratio. The total width including quiet zones spans from 90X to 583X. This flexibility is why PDF417 is used on driving licences, where the card size and barcode footprint are fixed by the AAMVA standard, and on airline boarding passes, where the barcode must fit in a specific region of the document.
PDF417 technical specification
Capacity and symbol size
| Parameter | Value | Source |
|---|---|---|
| Standard | ISO/IEC 15438:2015 | iso.org/standard/65502.html |
| Code type | Continuous, multi-row, stacked 2D | ISO/IEC 15438:2015 §5.1.1 |
| Codeword structure | 17 modules: 4 bars + 4 spaces; max element 6 modules | ISO/IEC 15438:2015 §5.1.1(b) |
| Max capacity at EC level 0 (925 data codewords) — Text | 1,850 characters | ISO/IEC 15438:2015 §5.1.1(c) |
| Max capacity at EC level 0 — Byte | 1,108 bytes | ISO/IEC 15438:2015 §5.1.1(c) |
| Max capacity at EC level 0 — Numeric | 2,710 digits | ISO/IEC 15438:2015 §5.1.1(c) |
| Symbol rows | 3 to 90 | ISO/IEC 15438:2015 §5.1.1(d) |
| Symbol columns | 1 to 30 | ISO/IEC 15438:2015 §5.1.1(d) |
| Width including quiet zones | 90X to 583X | ISO/IEC 15438:2015 §5.1.1(d) |
| Error correction | 9 levels (0–8): 2 to 512 ECC codewords per symbol | ISO/IEC 15438:2015 §5.1.1(e) |
| Bidirectional decode | Yes | ISO/IEC 15438:2015 §5.1.1(i) |
Error correction levels
PDF417 defines nine error correction levels numbered 0 through 8. At level 0, the symbol contains 2 error correction codewords. At level 8, the symbol contains 512 error correction codewords. More codewords for error correction means fewer codewords available for data, which reduces maximum capacity.
Level 0 is suitable for carefully controlled print and scanning environments where symbols are unlikely to be damaged. Level 5 or higher is appropriate for environments where symbols may be folded, printed on thermal paper that fades, or partially obscured. ISO/IEC 15438:2015 recommends a minimum of error correction level 2 for most applications.
Compact PDF417
Compact PDF417 is a variant that omits the right-side row indicator columns, reducing symbol width. It is used when label space is extremely constrained and the application can guarantee that the symbol will not be significantly damaged. Compact PDF417 is not as widely supported in scanner firmware as standard PDF417; verify reader support before deploying it.
When to use a PDF417 barcode
Driving licences in the United States and Canada. The AAMVA Driver's License/Identification Card Design Standard mandates PDF417 as the barcode symbology on the back of all US state and most Canadian province driver's licences and ID cards. The PDF417 barcode encodes the card holder's full name, address, date of birth, licence number, issuing jurisdiction and other fields defined by AAMVA. The standard references ISO/IEC 15438. This is the largest single deployment of PDF417 globally.
Airline boarding passes. IATA specifies PDF417 as one of the 2D barcode options for boarding pass bar codes, carrying passenger name, booking reference, origin, destination and seat assignment. Airport gate readers and checked-bag drop systems decode PDF417 as their primary or fallback format.
US Postal Service shipping labels. USPS uses PDF417 on shipping labels to carry tracking information that drives automated sortation and delivery confirmation.
Event ticketing and access control. PDF417 carries enough data for a full ticket payload including event, seat, gate and validity period in a single symbol, which makes it a practical choice for thermal-printed tickets that need to contain all information independently of a network lookup.
Healthcare patient wristbands. Patient identification wristbands in hospitals carry PDF417 to encode name, date of birth, medical record number and allergy alerts in a format readable by handheld scanners at the point of care.
High-density document encoding. Any application that needs to encode a full document or form in a single printable barcode — customs declarations, inspection certificates, laboratory orders — benefits from PDF417's 1,108-byte capacity at EC level 0.
Print requirements for PDF417
X-dimension. The X-dimension is the module width. The total symbol width is determined by the number of columns and the X-dimension. Use the largest X-dimension your label space allows, consistent with the scanner's minimum resolution specification.
Row height. ISO/IEC 15438:2015 specifies that the row height must be at least 3X. In practice, a row height of 5X to 10X improves scan reliability with laser-based readers that may not perfectly track between rows.
Quiet zones. PDF417 requires a quiet zone of at least 2X on the left and right and at least 2X above and below the symbol. Any border, art or text that encroaches on the quiet zone will cause the row indicators to be missed and the symbol to fail decoding.
Aspect ratio. Do not scale a PDF417 symbol unequally. The module width and row height must maintain their specified ratio. Non-uniform scaling produces rectangular modules instead of square ones and prevents correct decoding.
Substrate and contrast. PDF417 carries more data per symbol than most linear codes, so print contrast failures affect a larger proportion of the encoded codewords. Use high-contrast print media. Thermal printers must be calibrated so that dark bars do not bleed into adjacent spaces.
Troubleshooting: why your PDF417 barcode is not scanning
Row height too short. If the row height is less than 3X, many readers cannot distinguish individual rows and fail to decode the stacked structure. Increase the row height in the generator settings.
Missing quiet zone. PDF417 needs at least 2X of clear space on every side. Labels where the symbol is printed to the edge of the label stock will typically fail at the row indicator on the clipped side.
Error correction level too low for the print environment. A symbol printed at EC level 0 on thermal paper that curls or fades will fail to decode well before its useful life ends. Set a higher error correction level when durability is a concern.
Scanner cannot decode PDF417. Not all handheld scanners ship with PDF417 decoding enabled. Check the scanner's programming manual for a PDF417 enable instruction. Imager-based (area-array) scanners generally read PDF417 reliably; laser scanners may require multiple sweeps across the symbol height.
Non-uniform scaling. Stretching or compressing the symbol image alters module dimensions. Export from an SVG source and scale uniformly at the print stage.
Data exceeds capacity for the chosen configuration. If the encoded string is longer than the symbol's capacity at the chosen EC level, the generator will not produce a valid symbol. Either reduce the data, lower the error correction level, or increase the number of columns.
Binary data encoding error. When encoding binary data, ensure the generator is using Byte Compaction mode. Treating binary content as text will corrupt non-printable byte values.
PDF417 versus Data Matrix
PDF417 and Data Matrix both encode large amounts of data in a small area, but they serve different use cases and require different scanners.
| PDF417 | Data Matrix | |
|---|---|---|
| Standard | ISO/IEC 15438:2015 | ISO/IEC 16022:2006 |
| Symbol type | Stacked linear (rows) | Matrix (grid) |
| Max capacity — numeric | 2,710 digits (EC level 0) | 3,116 digits |
| Max capacity — bytes | 1,108 bytes (EC level 0) | 1,555 bytes |
| Aspect ratio | Variable (3–90 rows × 1–30 columns) | Square or rectangular |
| Scanner requirement | Multi-row imager | 2D imager |
| Best for | Driving licences, boarding passes, tickets | Pharma DPM, electronics, small labels |
| Consumer phone readability | Typically requires a dedicated app | Typically requires a dedicated app |
Choose PDF417 when the application requires a variable-aspect-ratio symbol and the reading environment uses multi-row imaging scanners — as in driving licence verification terminals, boarding gate readers and postal sortation systems. Choose Data Matrix when the priority is the smallest possible footprint on a surface-marked part.
Using this barcode in Bahrain and international supply chains
Bahrain retailers, importers, manufacturers and logistics teams should match identifiers to the rules of their trading partners. Retail GTINs must come from the proper issuing organisation; a generator creates artwork but does not assign ownership. Internal stock and asset references may use organisation-defined values when the receiving system supports them.
Use British English in operational guidance where it matches your organisation’s style, and add Arabic instructions for teams that need them. Print under the actual conditions of use. Bahrain’s heat, bright light, dust, curved packaging and reflective laminate can expose contrast or surface problems that are invisible on a monitor.
Keep quiet zones clear, avoid stretching the image, and prefer dark bars on a plain light background. Scan samples from the beginning, middle and end of a print run. For regulated retail, healthcare, publishing or logistics use, confirm the current GS1, ISBN-agency, customer or industry specification before approving production.
Before you print
- Correct symbology selected
- Identifier ownership confirmed
- Check digit verified
- Quiet zones kept clear
- Strong bar contrast
- Aspect ratio unchanged
- SVG or high-resolution PNG
- Production scanner test
Frequently asked questions
Open a question to read a concise technical answer.
01What does PDF417 stand for?+
PDF417 stands for Portable Data File 417. The number 417 describes the symbol structure: each codeword is exactly 17 modules wide and consists of 4 bars and 4 spaces, with the largest element spanning 6 modules. The format is defined in ISO/IEC 15438:2015.
02How much data can a PDF417 barcode hold?+
At error correction level 0, PDF417 holds up to 2,710 numeric digits, 1,850 text characters or 1,108 bytes of binary data per ISO/IEC 15438:2015 §5.1.1(c). Higher error correction levels reduce capacity by reserving codewords for recovery data.
03What is PDF417 used for on a driver's licence?+
The AAMVA Driver's Licence/Identification Card Design Standard mandates PDF417 on the back of all US state and most Canadian province driving licences. The PDF417 barcode encodes the card holder's name, address, date of birth, licence number, issuing jurisdiction and other AAMVA-defined fields. The standard references ISO/IEC 15438.
04What error correction levels does PDF417 have?+
PDF417 defines nine error correction levels from 0 to 8. Level 0 uses 2 ECC codewords and gives maximum data capacity. Level 8 uses 512 ECC codewords and gives maximum damage tolerance. ISO/IEC 15438:2015 §5.1.1(e) specifies the codeword counts per level.
05What is the difference between PDF417 and QR Code?+
PDF417 is a stacked linear symbology defined in ISO/IEC 15438:2015; QR Code is a matrix symbology defined in ISO/IEC 18004. PDF417 has a highly variable aspect ratio (3–90 rows by 1–30 columns) which makes it suitable for card-sized and document-sized labels. QR Code is more compact for equivalent data and is read natively by consumer phone cameras. PDF417 is the choice for AAMVA driving licences, boarding passes and postal labels; QR Code is the choice for consumer-facing applications.
06Can I generate a PDF417 barcode to replicate a driver's licence barcode?+
This generator produces correctly structured PDF417 symbols for legitimate test and development use. Encoding data in the AAMVA format and printing it on a card to simulate a government-issued credential is illegal. Use this tool for application testing, logistics labels, event tickets and other lawful purposes only.
07What is Compact PDF417?+
Compact PDF417 is a variant that omits the right-side row indicator columns, reducing symbol width. It is used when label space is very constrained. Compact PDF417 is not supported by all scanner firmware; verify reader compatibility before deploying it in a production system.
08Can PDF417 encode binary data?+
Yes. PDF417 Byte Compaction mode encodes byte values 0–255, covering all binary content. At EC level 0, the maximum binary capacity is 1,108 bytes per ISO/IEC 15438:2015 §5.1.1(c).
09Is PDF417 the barcode on airline boarding passes?+
IATA specifies PDF417 as one of the 2D barcode options for boarding passes. The symbol carries passenger name, booking reference, flight number, origin and destination airports and seat assignment. Not all boarding pass systems use PDF417 — some use Aztec Code — so the actual symbology depends on the airline and the boarding pass system.
10How do I scan a PDF417 barcode with my phone?+
Most consumer phone cameras do not decode PDF417 natively. A dedicated barcode scanner app that supports PDF417 is required. Industrial imager-based handheld scanners read PDF417 reliably when the symbology is enabled in the scanner's configuration.