PDF417 (Portable Data File 417) is a stacked barcode symbology capable of encoding over a kilobyte of data in a symbol.
PDF417 symbols may include extensive error-correction enabling
data to be recovered from a symbol which has been damaged or
corrupted.
There are 900 different patterns (codewords) which may be
incorporated into a PDF417 symbol, and several modes available for
encoding.
EXC (Extended Alphanumeric Compaction mode) - allows encoding of all printable ASCII characters into about 2 characters per codeword. Within the EXC mode there are several submodes:
EXC Alpha - starts in upper case
EXC Lower - starts in lower case
EXC Mixed - numeric and other punctuation
EXC Punctuation - punctuation & bracket characters.
Binary/ASCII Plus mode - allows encoding of 256 international characters including the full ASCII set plus any 8-bit value in the range 0 - 255. This mode allows encoding approximately 1.2 bytes per codeword and so is considerable less efficient than EXC mode.
Numeric mode - allows encoding of a string of digits with a density of approximately 2.95 digits per codeword. Recommended where more than 13 digits are to be encoded. Numeric mode symbols may not contain non-numeric characters.
The maximum capacity of PDF417 symbols is approximately as
follows:
Numeric mode – maximum capacity 2700 digits*
Alphanumeric text – maximum capacity 1800 characters*
Byte values – maximum capacity 1100 bytes
*Note that capital letters, punctuation, mode shifts and new lines/paragraphs reduce these value.
One of PDF417’s most valuable features is its ability to allow
correction of errors. This ability is provided by the inclusion of
additional codewords within the symbol, so that the data codewords
may be reconstructed even if some are defaced or misread.
The number of damaged codewords which may be recovered depends on
the security level (which in turn determines the number of
additional characters included in the symbol).
The Security level may range from 0 - 8, giving the (theoretical) number of damaged codewords that can be recovered from 0 - 512.
PDF417 symbols may be reproduced with different number of
codewords per row, and therefore in several different height to
width ratios.
The user may select the target number of codewords per row. In
general tall, thin barcodes read more reliable than short, wide
symbols, although there may be restrictions applied by the type of
barcode scanner employed.
The dBarcode library will attempt to form a symbol which meets a
target number of codewords per row, but users should note that some
things are just not possible!
Appended symbols are not supported at this time.
PDF417 symbols that are missing one data codeword and the stop bars from each row are known as Truncated PDF417 symbols. Most scanners will read such symbols, but some will not!
Truncated PDF417 symbols have the advantage of being smaller than full PDF417, but the disadvantage of being less able to tolerate damage without becoming unreadable.
Micro PDF417 is a multi-row symbology based on PDF417 and designed for applications requiring a greater area efficiency but lower data capacity than PDF417. A specific and limited set of symbol sizes is available, each size including a fixed level of error correction.
MicroPDF417 provides for three encoding modes: Text, Byte and Numeric compaction.
Text is for general text,
Numeric for encoding data consisting only of digits, and
Byte to allow for the first 127 ASCII characters but with a reduced
level of efficiency.
Four symbol widths are permitted, each specifying the number of data columns (1 – 4). Within each symbol width a variable number of rows provide for a maximum data capacity of:
Text compaction mode 0: 250 characters (2 data characters per
codeword)
Byte compaction mode 1: 150 characters (1.2 data characters per
codeword)
Numeric compaction mode 2: 366 characters (2.93 data characters per
codeword)
All dLSoft product families include products that support PDF417 symbols.