A PDF417 barcode is a stack of short linear barcodes. Each row is read like a 1D code, and the rows together carry one message. The name describes the codeword: every symbol character is 17 modules wide and is made of 4 bars and 4 spaces.
Every row has the same parts, left to right:
-
Quiet zone: a blank margin. PDF417 needs one on all four sides.
-
Start pattern: identical in every row. It tells the reader where the symbol begins.
-
Left row indicator: a codeword with the row number, the number of rows and columns, and the error correction level.
-
Data codewords: 1 to 30 per row, holding the data and the error correction codewords.
-
Right row indicator and stop pattern: the same information again, then the end of the row.
Each row uses one of three codeword patterns in turn, so a reader can tell neighboring rows apart even when a scan line crosses several of them. The error correction codewords let it rebuild missing or misread codewords.