Guides › PDF417 Character Limit — How Much Data Fits in a PDF417 Barcode?

PDF417 Character Limit — How Much Data Fits in a PDF417 Barcode?

A single PDF417 barcode can hold up to 1,850 ASCII characters, 1,108 bytes, or 2,710 numeric digits. Learn how payload size, column count, and error correction affect barcode dimensions.

PDF417 Character Limit — How Much Data Fits in a PDF417 Barcode?

A PDF417 barcode can hold a surprisingly large amount of data — far more than a UPC or Code 128. But the exact limit depends on what kind of data you're encoding and how you configure the symbol.

The short answer:

| Data type | Maximum capacity | |---|---| | ASCII text | 1,850 characters | | Binary data | 1,108 bytes | | Numeric digits only | 2,710 digits |

These are the ISO/IEC 15438 specification maximums at error correction level 0. In practice, you'll work with smaller payloads, and error correction level affects the usable space.


Why the Limit Varies by Data Type

PDF417 does not simply store a string of characters. It uses three internal compaction modes to maximize density:

Text Compaction

For uppercase letters, lowercase letters, punctuation, and common whitespace: - Encodes 2 characters per codeword - Used automatically for printable ASCII text

Numeric Compaction

For digit-only data (order numbers, tracking codes, phone numbers): - Encodes approximately 2.9 digits per codeword (more precisely: 44 digits per 15 codewords) - Significantly more efficient than text mode for long numeric strings

Byte Compaction

For binary data, UTF-8 strings, or any byte sequence: - Encodes 6 bytes per 5 codewords (1.2 bytes per codeword) - Less efficient than text mode, but handles anything

The encoder automatically selects the most efficient mode for each segment and can switch mid-symbol.


How Error Correction Affects Usable Capacity

Error correction codewords occupy space in the symbol. The higher the error correction level, the fewer codewords are available for data:

| Error correction level | Check codewords added | Capacity reduction vs. level 0 | |---|---|---| | 0 | 2 | — | | 1 | 4 | Minimal | | 2 | 8 | ~1% | | 3 | 16 | ~2% | | 4 | 32 | ~4% | | 5 | 64 | ~7% | | 6 | 128 | ~14% | | 7 | 256 | ~27% | | 8 | 512 | ~50% |

For most real-world payloads, this is not a practical concern — a driver's license barcode at ~1,100 bytes with error correction level 3 still fits comfortably in a standard card-sized symbol. The maximum capacity figures matter primarily when designing systems that encode large documents or data records.

For more on error correction tradeoffs, see PDF417 error correction levels explained →.


Real-World Payloads: What Fits in a PDF417

Here is what common use cases actually encode:

| Application | Typical payload size | Notes | |---|---|---| | AAMVA driver's license | 500–900 bytes | Name, DOB, address, license #, restrictions | | Airline boarding pass (IATA BCBP) | ~200–400 bytes | Passenger name, flight, seat, security token | | Standard shipping label | 100–300 bytes | Tracking number, address, service code | | Event ticket | 50–200 bytes | Order ID, seat, cryptographic token | | Healthcare patient band | 100–200 bytes | MRN, DOB, allergy flags | | Simple URL or short text | 20–100 bytes | Easily fits in a tiny symbol |

Most real-world PDF417 barcodes use well under 20% of the maximum capacity. If you find yourself approaching the limit, consider whether your payload could be shortened (use IDs rather than full strings) or whether a different format might be more appropriate.


How Column Count and Rows Affect Symbol Size

PDF417 is flexible in shape. The same payload can be rendered as:

Configuring columns controls the aspect ratio without changing the data:

```bash

Wide, short symbol

curl -X POST https://www.pdf417-studio.com/api/generate \ -H "Content-Type: application/json" \ -d '{"payload": "TRACK-100492|DEST:90210", "columns": 10, "errorCorrection": 3}'

Narrow, tall symbol

curl -X POST https://www.pdf417-studio.com/api/generate \ -H "Content-Type: application/json" \ -d '{"payload": "TRACK-100492|DEST:90210", "columns": 3, "errorCorrection": 3}' ```

PDF417 Studio defaults to a column count that produces a roughly 3:1 width-to-height ratio, which is the industry convention for most label applications. You can override this in both the web UI and the API.

Column count limits

The total number of codewords (rows × columns) must accommodate your data codewords plus error correction codewords. If your payload requires more codewords than fit at the specified column count and maximum row count (90), the encoder will error. In practice this only happens when encoding very large payloads at high error correction levels with a low column count.


Estimating Symbol Physical Size

The physical size of a PDF417 barcode depends on:

  1. Number of data codewords (determined by payload)
  2. Column count (set by you or defaulted by the encoder)
  3. Module width (the width of the narrowest bar in the symbol, in mils or mm)
  4. Row height (height of a single row, typically 3–5× the module width)

For a standard shipping label environment, a good starting point is:

At 20 mils module width, a 200-character payload with 10 columns at error correction level 3 produces a symbol approximately 2.5 inches wide × 1.0 inch tall. For a 4×6 inch label, this is a comfortable fit.

For a detailed guide on sizing, quiet zones, and DPI, see PDF417 quiet zone and print size guide →.


Practical Tips for Large Payloads

1. Use numeric compaction when encoding digits. Shipping tracking numbers, phone numbers, and ID numbers are far more compact in numeric mode. Most encoders apply this automatically, but verify by checking the output size.

2. Compress before encoding. If you are encoding JSON or structured text, gzip + base64 encoding and then encoding the binary payload can substantially reduce size. Decode with the matching algorithm on read.

3. Split very large payloads. Macro PDF417 is a multi-symbol format that links up to 99 PDF417 symbols to store arbitrarily large data. It is rarely used in practice; consider whether your use case truly needs more than ~1,500 characters in a single symbol.

4. Test the generated barcode. The encoder reports a success, but physical scanning is the ground truth. Use the PDF417 Studio Diagnose tool → to verify that your generated symbol decodes correctly before committing to a print run.


Checking Payload Size Before Generation

In PDF417 Studio's web UI, the character counter updates in real time as you type. You can also estimate via the API — generate the barcode and check the response metadata for symbol dimensions and codeword count.

Try it now: PDF417 Barcode Generator →


Summary

See also: - What is PDF417? → - PDF417 error correction levels explained → - PDF417 quiet zone and print size guide → - Generate a PDF417 barcode → - API documentation →

Try it in the generator

Generate PDF417, QR Code, Data Matrix, and more — free, no sign-up required.

Open generator →