SourceForge Project Page

PDF417

also known as: ISO/IEC 15438:2001(E)

Example

Example PDF417 symbol

Structure

The configuration for the default implementation is:

<barcode>
  <pdf417>
      <module-width>{length:0.352777mm}</module-width> <!-- 1 pixel at 72dpi -->
      <row-height>{length:3mw}</row-height>
      <columns>{number:2}</columns>
      <min-columns>{number:2}</min-columns>
      <max-columns>{number:2}</max-columns>
      <min-rows>{number:3}</min-rows>
      <max-rows>{number:90}</max-rows>
      <ec-level>{number:0}</ec-level>
      <quiet-zone enabled="{boolean:true}">{length:2mw}</quiet-zone>
      <vertical-quiet-zone>{length:default is same as quiet-zone}</vertical-quiet-zone>
      <width-to-height-ratio>{number:3.0}</width-to-height-ratio>
  </pdf417>
</barcode>

Notes

  • This symbology has no human-readable part!
  • "ec-level" is the error correction level and must be between 0 and 8.
  • If "vertical-quiet-zone" is not set explicitely, it is the same as the horizontal quiet zone.
  • Depending on the size of the message, "columns" and "ec-level" may need to be adjusted. Read possible error messages carefully.
  • Alternatively, you can remove the "columns" setting and work with "min/max-columns" and "min/max-rows" which allows the symbol to grow and shrink depending on the message. Using the "width-to-height-ratio" you can control the shape of the symbol. (Note: the valid number of rows must be between 3 and 90, the valid number of columns between 1 and 30)
  • Using the "columns" setting overrides the "min/max-columns" setting! Or in other words: Setting "columns" sets "min-columns" and "max-columns" to the same value.
  • Macro PDF417 functionality is not implemented, yet.
  • Compact PDF417 functionality is not implemented, yet.

Message format

  • All printable ASCII characters are valid characters.
  • Byte compaction mode permits all 256 possible 8-bit byte values to be encoded.
  • Using only numeric characters allows for smaller symbol sizes.
  • Currently, no ECI functionality is available. All characters are interpreted in "cp437" (PC437) encoding.