PDF417 - Dynamsoft Barcode Reader SDK
What is a PDF417 Barcode?
PDF417 barcodes are a type of stacked, variable length, bidirectional 2D barcode. It is one of the most widely used 2D barcodes, most commonly found in logistics, transportation (boarding passes), government identification (driver licenses and identification cards), inventory and document management (postal packages).
Specifications and Imaging Geometry
PDF417 barcodes are made up of a number of modules but can be categorized into three distinct sections.
- Start Pattern and Stop Pattern
- Left Indicator and Right Indicator
- Data Codewords
Each module starts with a solid black column and ends with a solid white column so you can visually see where each module begins and ends. There is also a blank margin on either side of a barcode known as the quiet zone. This is used to localize the barcode.
- Quiet zone - a required border used by scanner software to determine when a PDF417 physically begins and ends.
- Start pattern and stop pattern - Comprised of a set of black and white vertical bars and spaces, the start and stop patterns indicate the beginning and end regions of the barcode. They help the barcode scanner locate the barcode, but don't contain any data.
- Left and Right Indicators - The left and right indicators do not contain any text data, rather they contain information about the barcode such as how many rows the barcode has, the error correction level, and so on.
- Data codewords - The data codewords section is where numbers, letters, or other symbols are decoded in a cluster pattern of bars and spaces, each separated by a solid white column. In the figure above, two sections are shown. There can be as few as one or as many as 30 data codeword clusters. The size of the PDF417 barcode depends on how much data is encoded.
Each data word section is 17 cells long and is comprised of 4 black bars and 4 white spaces, which is where the name PDF417 comes from — Portable Data File (PDF) + the data word pattern is comprised of 4 black and white cells, and are 17 cells long. Each data word is read left to right, top to bottom.
PDF417 was one of the first publicly available high-density 2D barcodes.
PDF417 symbol dimensions depend on the amount of data that is entered. The height of any PDF417 symbol can range from 3 to 90 rows, and the row height can range from 1X to 10X, where "X" is the current X dimension. The width of a symbol can range from 90X to 583X. A minimum quiet zone of 2X is required on all sides.
Character Set and Capacity
PDF417 supports full ASCII, which includes any ASCII character (value 0-127). It can encode 1,850 text characters, 2,710 digits, or 1,108 bytes.
PDF417 barcodes are comprised of rows. It must have at least three rows and a maximum of 90, each acting like a small linear barcode. In the figure above, eight rows are shown. Each row is the same width and has the same number of codewords.
Each module is made up of 17 columns. As mentioned previously, each module starts with a solid black column and ends with a solid white column.
Error Detection and Correction
PDF417 uses the Reed-Solomon algorithm for error detection and correction, which has added redundancy, ensuring the barcode is still readable even if it has been damaged. The error correction levels range from 0 to 8. The higher the error correction level, the more redundancy the barcode has. However, the more areas used for error correction means less data can be encoded into the barcode. As per AIM standards, a minimum error correction level of 2 is recommended.
The chart below shows the number of error correction codewords that are added to the PDF417 barcode as well as AIM error correction recommendations.
|EC Codewords Generated||2||4||6||8||16||32||64||128||512|
|Data Codewords|| || ||1-40||41-160||161-320||321-863|| || || |
|Data Bytes Encoded|| || ||1-56||57-192||193-384||385-1035|| || || |
How could Dynamsoft help you with PDF417?
Dynamsoft barcode reader enables you to efficiently embed high-speed and reliable barcode reading functionality in your web, desktop or mobile application using just a few lines of code.
Download the free trial SDK, explore our helpful resource center including sample codes, tutorials, guides and more to get started.