PDF417, or Portable Data File 417, is a two-dimensional (2D) stacked barcode symbology capable of encoding over a kilobyte of data per label. It was developed by Symbol Technologies (1989-1992) and is currently maintained by ISO/IEC.
Large amounts of text and data can be stored securely and inexpensively when using the PDF417 symbology. The printed symbol consists of several linear rows of stacked codewords. Each codeword represents 1 of 929 possible values from one of three different clusters. A different cluster is chosen for each row, repeating after every three rows.
The data is encoded using one of three compaction modes: Text compaction mode, Binary compaction mode, and Numeric compaction mode.
Barcode Professional products support the following PDF417 Compaction modes:
- Text: It allows encoding all printable ASCII characters, i.e. values from 32 to 126 inclusive in accordance with ISO/IEC 646, as well as selected control characters such as TAB (horizontal tab ASCII 9), LF (NL line feed, new line ASCII 10) and CR (carriage return ASCII 13).
- Binary: It allows encoding all 256 possible 8-bit byte values (ISO/IEC 8859-1). This includes all ASCII characters value from 0 to 127 inclusive and provides for international character set support.
- Numeric: It allows efficient encoding of numeric data strings.
- Auto: It switches between Text, Binary and Numeric modes in order to minimize the number of codewords to be encoded.
PDF417 Error Correction Level
PDF417 uses Reed Solomon error correction instead of check digits. This error correction allows the symbol to withstand some damage without causing loss of data. The error correction levels range from 0 to 8. The recommend minimum error correction level is 2.
Compact PDF417
Barcode Professional products support Compact PDF417 (formerly Truncated PDF417) version which omits the right-hand portion (right row indicator & stop pattern) in order to save space. Please refer to
Compact PDF417 Symbology for further details.
Sample of a PDF417 Barcode
How to create PDF417 barcodes using Barcode Professional
Note: Please refer to the Class Reference documentation for more information about the properties and methods stated in this document.
In order to get a PDF417 barcode image, please follow these steps:
- Set the Symbology property to Pdf417
- Set the Pdf417CompactionType property to:
- Text: It allows encoding all printable ASCII characters, i.e. values from 32 to 126 inclusive in accordance with ISO/IEC 646, as well as selected control characters such as TAB (horizontal tab ASCII 9), LF (NL line feed, new line ASCII 10) and CR (carriage return ASCII 13).
- Binary: It allows encoding all 256 possible 8-bit byte values. This includes all ASCII characters value from 0 to 127 inclusive and provides for international character set support.
- Numeric: It allows efficient encoding of numeric data strings.
- Auto: It switches between Text, Binary and Numeric modes in order to minimize the number of codewords to be encoded.
- Set the Pdf417ErrorCorrectionLevel property. ISO/IEC standards recommend a minimum error correction level of 2.
- Setting up dimensions and quiet zones:
- In our PDF417 implementation the BarHeight property is calculated as BarWidth * BarRatio
- Set the BarWidth property (Value is expressed in Inches)
- Set the BarRatio property to an integer greater than or equal to 3
- Set the Pdf417Rows property to a value ranging from 3 to 90. Specify zero (0) so that Barcode Professional can determine it automatically.
- Set the Pdf417Columns property to a value ranging from 1 to 30. Specify zero (0) so that Barcode Professional can determine it automatically.
- Set the QuietZoneWidth property to double of BarWidth (Value is expressed in Inches)
- Set the TopMargin and BottomMargin properties to double of BarWidth (Values are expressed in Inches)
- (Optional) Set the Pdf417AspectRatio property to a value ranging from 0 to 1. It's the ratio of the height to the overall width of the symbol. NOTE: For Pdf417AspectRatio property takes effect, Pdf417Rows and Pdf417Columns properties must be set to 0 (zero).
- Set the Code property with the value to encode.
- (Optional) Set the Pdf417Truncated to True if needed for generating a Compact PDF417 Symbol.
Example of a PDF417 barcode image
Code property = 123456789 and Pdf417CompactionType property = Auto will produce the following barcode image:
Code property = 123456789 and Pdf417CompactionType property = Auto and Pdf417Truncated property = True will produce the following barcode image: