PDF417

PDF417 is a stacked linear barcode symbol format used in a variety of applications, primarily transport, identification cards, and inventory management. PDF stands for Portable Data File. The 417 signifies that each pattern in the code consists of 4 bars and spaces, and that each pattern is 17 units long. The PDF417 symbology was invented by Dr. Ynjiun P. Wang at Symbol Technologies in 1991. (Wang 1993) It is represented by ISO standard 15438.

Contents

Features

In addition to features typical of two dimensional bar codes, PDF417's capabilities include:

Format

The PDF417 bar code (also called a symbol) consists of 3 to 90 rows, each of which is like a small linear bar code. Each row has:

All rows are the same width; each row has the same number of codewords.

Codewords

PDF417 uses a base 929 encoding. Each codeword represents a number between 0 and 928 inclusive.

The codewords are represented by patterns of dark (bar) and light (space) regions. Each of these patterns contains four bars and four spaces (where the 4 in the name comes from). The total width is 17 times the width of the narrowest allowed vertical bar (the X dimension); this is where the 17 in the name comes from. Each pattern starts with a bar and ends with a space.

The row height must be 3 times the minimum width: Y ≥ 3 X.[1]

There are three distinct bar–space patterns used to represent each codeword. These patterns are organized into three groups known as clusters. The clusters are labeled 0, 3, and 6. No bar–space pattern is used in more than one cluster. The rows of the symbol cycle through the three clusters, so row 1 uses patterns from cluster 0, row 2 uses cluster 3, row 3 uses cluster 6, and row 4 again uses cluster 0.

Which cluster can be determined by an equation:[2]

K = b_1 - b_2 %2B b_3 - b_4 %2B 9 \,\, \pmod 9

Where K is the cluster number and the bi refer to the width of the i-th bar in the symbol character (in X units).

Alternatively,[3]

K = E_1 - E_2 %2B E_5 - E_6 %2B 9 \,\, \pmod 9

Where Ei is the i-th edge-to-next-same-edge distance. Odd indices are the leading edge of a bar to the leading edge of the next bar; even indices are for the trailing edges.

One purpose of the three clusters is to determine which row (mod 3) the codeword is in. The clusters allow portions of the symbol to be read using a single scan line that may be skewed from the horizontal.[4] For instance, the scan might start on row 6 at the start of the row but end on row 10. At the beginning of the scan, the scanner sees the constant start pattern, and then it sees symbols in cluster 3. When the skewed scan straddles rows 6 and 7, then then the scanner sees noise. When the scan is on row 7, the scanner sees symbols in cluster 1. Consequently, the scanner knows the direction of the skew. By the time the scanner reaches the right, it is on row 10, so it sees cluster 1 patterns. The scanner will also see a constant stop pattern.

Encoding

Of the 929 available codewords, 900 are used for data, and 29 for special functions. Three different encoding schemes are defined and can be mixed as necessary within a single symbol.

Error correction

When the PDF417 symbol is created, from 2 to 512 error detection and correction codewords are added. PDF417 uses Reed–Solomon error correction. When the symbol is scanned, the maximum number of corrections that can be made is equal to the number of codewords added, but the standard recommends that two codewords be held back to ensure reliability of the corrected information.

Applications

PDF417 is one of the formats (along with Data Matrix) that can be used to print postage accepted by the United States Postal Service. PDF417 is also selected by the airline industry's Bar Coded Boarding Pass standard (BCBP) as the 2D bar code symbolism for paper boarding passes. PDF417 is the standard selected by the Department of Homeland Security as the machine readable zone technology for RealID compliant driver licenses and state issued identification cards.

References

  1. ^ ISO/IEC 2006, p. 28, 5.8.2.
  2. ^ ISO/IEC 2006, p. 9, 5.3.1.
  3. ^ ISO/IEC 2006, pp. 76–78
  4. ^ ISO/IEC 2006, 5.11.1.

External links