# PDF417

**PDF417** is a two-dimensional, stacked linear barcode symbology in which data is stored as codewords arranged in rows, each row readable like a one-dimensional barcode. It was invented in 1991 by Ynjiun P. Wang at Symbol Technologies, standardized as ISO/IEC 15438, and is the symbology mandated on the back of United States and Canadian driver licenses and used as the default barcode on printed airline boarding passes.<sup>[1](https://barcodefyi.com/timeline/)</sup><sup> • </sup><sup>[2](https://www.iso.org/obp/ui?_escaped_fragment_=iso%3Astd%3Aiso-iec%3A15438%3Aed-3%3Av1%3Aen)</sup><sup> • </sup><sup>[3](https://www.aamva.org/getmedia/99ac7057-0f4d-4461-b0a2-3a5532e1b35c/AAMVA-2020-DLID-Card-Design-Standard.pdf)</sup><sup> • </sup><sup>[4](https://www.iata.org/en/programs/passenger/common-use/)</sup>

| Key fact | Detail |
|---|---|
| Origin | Invented in 1991 by Ynjiun P. Wang at Symbol Technologies; published by AIM in 1994<sup>[1](https://barcodefyi.com/timeline/)</sup><sup> • </sup><sup>[5](https://aidc100.org/wp-content/uploads/2018/07/DCA-history.pdf)</sup> |
| Standard | ISO/IEC 15438 (third edition, 2015); the symbology is in the public domain, free of user restrictions, licenses and fees<sup>[2](https://www.iso.org/obp/ui?_escaped_fragment_=iso%3Astd%3Aiso-iec%3A15438%3Aed-3%3Av1%3Aen)</sup> |
| Symbol structure | 3 to 90 rows, each with 1 to 30 data codewords; every codeword is 17 modules wide, made of 4 bars and 4 spaces with elements 1 to 6 modules wide<sup>[6](https://docs.cognex.com/cvl_900/web/EN/cvl_vision_tools/Content/Topics/VisionTools/PDF_417_Stacked_Barcode.htm)</sup><sup> • </sup><sup>[7](https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf?trk=public_post_comment-text)</sup> |
| Maximum capacity | 2,710 numeric digits, 1,850 alphanumeric characters, or 1,108 bytes per symbol<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup> |
| Error correction | Reed-Solomon, nine levels (0 to 8) adding from 2 to 512 codewords; level 0 detects errors only<sup>[9](https://docs.aspose.com/barcode/info-cards/pdf417-family/)</sup><sup> • </sup><sup>[10](https://dor.mo.gov/pdf/barcodes.pdf)</sup> |
| Scanning | Readable by ordinary 1D laser scanners sweeping across the rows; matrix codes such as QR and Data Matrix require a camera-based imager<sup>[7](https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf?trk=public_post_comment-text)</sup> |
| Principal uses | US and Canadian driver licenses and ID cards (AAMVA standard), printed boarding passes (IATA Resolution 792), logistics and government documents<sup>[3](https://www.aamva.org/getmedia/99ac7057-0f4d-4461-b0a2-3a5532e1b35c/AAMVA-2020-DLID-Card-Design-Standard.pdf)</sup><sup> • </sup><sup>[4](https://www.iata.org/en/programs/passenger/common-use/)</sup><sup> • </sup><sup>[11](https://www.dynamsoft.com/barcode-reader/barcode-types/pdf417/)</sup> |

## Symbol structure

A PDF417 symbol is a stack of vertically aligned rows, from a minimum of 3 to a maximum of 90. Each row carries a start pattern, a left row indicator, between 1 and 30 data codewords, a right row indicator, and a stop pattern, with a quiet zone on all four sides.<sup>[6](https://docs.cognex.com/cvl_900/web/EN/cvl_vision_tools/Content/Topics/VisionTools/PDF_417_Stacked_Barcode.htm)</sup><sup> • </sup><sup>[12](https://ptacts.uspto.gov/ptacts/public-informations/petitions/1499414/download-documents?artifactId=3GAD5jmCS-a4Spvsd4tjI8RNJC8aNkjPbs7fYVyAaTS9Wxb6FIDQm70)</sup> The name derives from the codeword structure: each codeword is a block of 17 modules arranged as 4 bars and 4 spaces, each element 1 to 6 modules wide, so the widths of the four bars and four spaces together always add to 17.<sup>[7](https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf?trk=public_post_comment-text)</sup>

**Row indicators and clusters.** The row indicators at the ends of each row encode the row number, the total number of rows and columns, and the error correction level, which lets a decoder reconstruct the symbol's layout from a partial sweep.<sup>[10](https://dor.mo.gov/pdf/barcodes.pdf)</sup> The 929 available codeword values are divided into three mutually exclusive clusters, each with distinct bar-space patterns so one cluster cannot be confused with another. Adjacent rows use different clusters, with the same cluster repeating every third row; because of this, a decoder can stitch together partial scans of a dense symbol.<sup>[12](https://ptacts.uspto.gov/ptacts/public-informations/petitions/1499414/download-documents?artifactId=3GAD5jmCS-a4Spvsd4tjI8RNJC8aNkjPbs7fYVyAaTS9Wxb6FIDQm70)</sup>

**Shape flexibility.** Because both the number of rows and the number of codewords per row are variable, the aspect ratio of a symbol can be adjusted to fit the available printing space, from a wide, short rectangle to a tall, narrow one.<sup>[12](https://ptacts.uspto.gov/ptacts/public-informations/petitions/1499414/download-documents?artifactId=3GAD5jmCS-a4Spvsd4tjI8RNJC8aNkjPbs7fYVyAaTS9Wxb6FIDQm70)</sup>

## Data encoding and capacity

Data is mapped to codewords through three compaction modes.<sup>[2](https://www.iso.org/obp/ui?_escaped_fragment_=iso%3Astd%3Aiso-iec%3A15438%3Aed-3%3Av1%3Aen)</sup> Text compaction encodes up to 2 characters per codeword and covers all printable ASCII characters plus tab, line feed, and [carriage return](https://www.edgepedia.org/carriage-return). Byte compaction converts 6 data bytes into 5 codewords and supports all 256 byte values for international character data. Numeric compaction converts 44 consecutive digits into 15 or fewer codewords and is used for long digit strings.<sup>[7](https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf?trk=public_post_comment-text)</sup>

At the largest symbol size and lowest practical error correction, a single PDF417 symbol holds up to 2,710 numeric digits, 1,850 alphanumeric characters, or 1,108 bytes.<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup> For payloads beyond one symbol, the Macro PDF417 procedure distributes a file across a number of related symbols, considerably extending capacity.<sup>[2](https://www.iso.org/obp/ui?_escaped_fragment_=iso%3Astd%3Aiso-iec%3A15438%3Aed-3%3Av1%3Aen)</sup> A reduced variant, Truncated PDF417, omits the right row indicator and simplifies the stop pattern for relatively clean environments where label damage is unlikely.<sup>[12](https://ptacts.uspto.gov/ptacts/public-informations/petitions/1499414/download-documents?artifactId=3GAD5jmCS-a4Spvsd4tjI8RNJC8aNkjPbs7fYVyAaTS9Wxb6FIDQm70)</sup>

## Error correction

PDF417 uses Reed-Solomon error correction at nine selectable levels, 0 through 8. Level 0 provides error detection only; levels 1 through 8 add correction, with the algorithm appending from 2 codewords at level 0 to 512 codewords at level 8.<sup>[9](https://docs.aspose.com/barcode/info-cards/pdf417-family/)</sup><sup> • </sup><sup>[10](https://dor.mo.gov/pdf/barcodes.pdf)</sup> Higher levels consume symbol capacity quickly, so the level is chosen against message size, print quality, and scanning conditions; levels 2 to 5 are generally recommended.<sup>[9](https://docs.aspose.com/barcode/info-cards/pdf417-family/)</sup> The correction mechanism distinguishes erasures, where a codeword's position is known but its value missing, from substitution errors, where both position and value are unknown.<sup>[9](https://docs.aspose.com/barcode/info-cards/pdf417-family/)</sup>

## Reading PDF417

Although PDF417 is a two-dimensional symbology, it is in reality a stack of one-dimensional barcodes, and its decode algorithm uses scan lines. A laser scanner that reads 1D codes can therefore sweep across the rows and reassemble the payload, which matrix codes such as QR Code and [Data Matrix](https://www.edgepedia.org/data-matrix) cannot do, since they require a camera-based area imager.<sup>[7](https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf?trk=public_post_comment-text)</sup> This is the property that carried PDF417 onto driver licenses, boarding passes, and shipping labels where laser scanner fleets were already installed.<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup>

The trade-off is print area. At the same payload and module size, PDF417 prints noticeably wider than Data Matrix or QR Code, because each row must stay tall enough for a laser sweep to hit it cleanly; a PDF417 symbol takes roughly four times the printed area of a Data Matrix carrying the same data.<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup><sup> • </sup><sup>[13](https://barcoder.lumiverse.hr/docs/standards/pdf417)</sup>

## Applications and standards

**Driver licenses.** The AAMVA North American DL/ID Card Design Standard makes the PDF417 symbology the minimum mandatory machine-readable technology on compliant driver licenses and ID cards, placed in a designated zone on the back of the card. The Compact, Micro, and Macro PDF417 variants are explicitly excluded. The standard requires an error correction level of at least 3 (level 5 recommended where space allows), a narrow element (X dimension) between 0.170 mm and 0.380 mm, a row height of at least three times the X dimension, and a minimum quiet zone of 1X on all four sides.<sup>[3](https://www.aamva.org/getmedia/99ac7057-0f4d-4461-b0a2-3a5532e1b35c/AAMVA-2020-DLID-Card-Design-Standard.pdf)</sup><sup> • </sup><sup>[14](https://www.aamva.org/getmedia/81af105d-8b1b-45e1-aa46-f1800a259ed1/AAMVADLIDCardDesignStandard2025.pdf)</sup>

**Boarding passes.** Under IATA Resolution 792 (Bar Coded Boarding Pass), the default barcode on a printed boarding pass is a 2D barcode in the PDF417 standard containing a structured data message; version 7 of the resolution, effective June 2018, extended the standard to also allow Aztec, Data Matrix, or QR Code on printed boarding passes.<sup>[4](https://www.iata.org/en/programs/passenger/common-use/)</sup>

**Other uses.** PDF417 appears in logistics, transportation, inventory, and document management, and government tax agencies use it on paper forms so return data can be scanned instead of key-entered.<sup>[11](https://www.dynamsoft.com/barcode-reader/barcode-types/pdf417/)</sup><sup> • </sup><sup>[10](https://dor.mo.gov/pdf/barcodes.pdf)</sup> Within the GS1 system, the CC-C 2D Composite Component is a PDF417 symbol identified by the codeword 920 as its first codeword.<sup>[15](https://ref.gs1.org/standards/genspecs/23.0.0/)</sup>

## Comparison with matrix symbologies

Against QR Code and Data Matrix, PDF417's capacity ceiling is lower: QR Code version 40 at ECC-L holds 7,089 numeric digits, 4,296 alphanumeric characters, or 2,953 bytes, and Data Matrix ECC200 holds 3,116, 2,335, and 1,556 respectively, against PDF417's 2,710, 1,850, and 1,108.<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup> PDF417's distinguishing advantages are laser-scanner compatibility, a rectangular shape that fits documents such as the back of a license or the bottom of a boarding pass, and suitability for fixed-size structured data rather than URLs.<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup><sup> • </sup><sup>[13](https://barcoder.lumiverse.hr/docs/standards/pdf417)</sup> Where the only reader is a consumer's phone camera, QR Code is the usual choice, and for payloads of 2 KB or more QR Code is the only one of the three that fits in a single symbol.<sup>[8](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)</sup>

## References

1. [Barcode History Timeline, BarcodeFYI](https://barcodefyi.com/timeline/)
2. [ISO/IEC 15438:2015, PDF417 bar code symbology specification, ISO Online Browsing Platform](https://www.iso.org/obp/ui?_escaped_fragment_=iso%3Astd%3Aiso-iec%3A15438%3Aed-3%3Av1%3Aen)
3. [AAMVA 2020 DL/ID Card Design Standard, Annex D: Mandatory PDF417 Bar Code](https://www.aamva.org/getmedia/99ac7057-0f4d-4461-b0a2-3a5532e1b35c/AAMVA-2020-DLID-Card-Design-Standard.pdf)
4. [IATA Common Use Standards (Resolution 792, Bar Coded Boarding Pass)](https://www.iata.org/en/programs/passenger/common-use/)
5. [The History of Automatic Identification, AIDC 100](https://aidc100.org/wp-content/uploads/2018/07/DCA-history.pdf)
6. [PDF 417 Stacked Barcode, Cognex CVL documentation](https://docs.cognex.com/cvl_900/web/EN/cvl_vision_tools/Content/Topics/VisionTools/PDF_417_Stacked_Barcode.htm)
7. [IATA Bar Coded Boarding Pass Implementation Guide, version 7, Appendix C](https://www.iata.org/contentassets/1dccc9ed041b4f3bbdcf8ee8682e75c4/2021_03_02-bcbp-implementation-guide-version-7-.pdf?trk=public_post_comment-text)
8. [PDF417 vs Data Matrix vs QR: Picking a 2D Symbology, Barcode Press](https://barcodepress.com/guides/pdf417-vs-data-matrix-vs-qr)
9. [PDF417 Barcodes, Aspose Barcode documentation](https://docs.aspose.com/barcode/info-cards/pdf417-family/)
10. [2-D Barcode Technology, Missouri Department of Revenue](https://dor.mo.gov/pdf/barcodes.pdf)
11. [PDF417 Barcode Scanner, Dynamsoft](https://www.dynamsoft.com/barcode-reader/barcode-types/pdf417/)
12. [PDF417 Specification, Ynjiun P. Wang, Symbol Technologies (1991), USPTO document](https://ptacts.uspto.gov/ptacts/public-informations/petitions/1499414/download-documents?artifactId=3GAD5jmCS-a4Spvsd4tjI8RNJC8aNkjPbs7fYVyAaTS9Wxb6FIDQm70)
13. [PDF417, Barcoder (Lumiverse) standards documentation](https://barcoder.lumiverse.hr/docs/standards/pdf417)
14. [AAMVA DL/ID Card Design Standard (2025), Zone V](https://www.aamva.org/getmedia/81af105d-8b1b-45e1-aa46-f1800a259ed1/AAMVADLIDCardDesignStandard2025.pdf)
15. [GS1 General Specifications, Release 23.0.0](https://ref.gs1.org/standards/genspecs/23.0.0/)

---
*Topic: Encyclopedia › Technology and the built world › Computing and digital systems › Software and programming › Data formats and serialization › Text, encodings, and archives*

*Initially written Sep 17, 2026 · Reviewed: Oct 15, 2026 · Edited: Oct 15, 2026 · Last review: Oct 15, 2026*

*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*

License: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license
