zpl.tools
Bar codes

^BF - MicroPDF417 Bar Code

Compact PDF417 variant for small labels, selected from a table of 34 fixed row-and-column layouts.

^BF prints a MicroPDF417 symbol. MicroPDF417 is PDF417 with 10-module row address patterns in place of the 17-module start and stop patterns and the row indicators, so the symbol is narrower. A scanner reads it at row heights as low as twice the module width.

Use ^BF where a label is too small for ^B7 PDF417 and the payload is too large for a linear symbology. It trades the capacity of PDF417 for area efficiency.

Syntax

^BFo,h,m

Support

Supportedparsed: full · state: full · rendered: full

Every documented parameter renders the same output Labelary produces.

Labelary renders this command.

Parameters

oBar code orientationoptional · one of a set

Rotation of the symbol and interpretation line.

Default
the orientation set by ^FW, which itself defaults to N
Invalid value
discarded, and the default applies. The renderer reports an unrecognized character as invalid, and uses the default.
Test coverage
No documented value is exercised by a test (N, R, I, B). The invalid-value rule is pinned by 1 test.
N
No rotation (default)
R
Rotated 90° clockwise
I
Rotated 180°. The symbol reads upside down
B
Rotated 270° clockwise
hRow heightoptional · dots

Height of one row of the symbol.

Default
the height that makes the whole symbol match the ^BY height
Accepted range
1 to 9999 dots
Invalid value
discarded, and the default applies. An out-of-range height is discarded, and the ^BY-derived default applies. No measurement covers Labelary outside 1-9999.
Test coverage
Bounds pinned: minimum (1). No test at the maximum or one step outside the range. The invalid-value rule is not pinned by a test.
mModeoptional · integer

Selects one of 34 fixed layouts. Modes 0-5 use one data column, 6-12 two, 13-22 three and 23-33 four.

Default
0
Accepted range
0 to 33
Invalid value
discarded, and the default applies. An out-of-range mode resets to the default of 0. No measurement covers Labelary outside the range.
Test coverage
Bounds pinned: maximum (33), below the minimum (-1). No test at the minimum. The invalid-value rule is not pinned by a test.

Behavior

Unlike PDF417, the shape is not free. MicroPDF417 exists only in 34 fixed row-and-column combinations, up to four data columns by 44 rows, and the mode argument selects one of them. Modes 0 to 5 use one data column, modes 6 to 12 use two, modes 13 to 22 use three, and modes 23 to 33 use four.

Each mode has its own capacity and its own percentage of code-words for error correction, and the two values move in opposite directions. Decide the damage tolerance the label needs first, then how much data fits.

The guide limits field data to 250 seven-bit characters, 150 eight-bit characters, or 366 four-bit numeric characters. The capacity within a mode is lower again. Mode 0 is the default and holds 8 digits or 6 alphanumeric characters, and mode 32 holds 366 digits at 28 per cent error correction. Select the mode from the real payload and not from the maximum.

The height argument is the height of one row. Without that argument, the renderer derives a row height that matches the symbol to the ^BY bar code height.

The renderer does not parse ^BF. It reports the command as valid ZPL that it does not support, and it draws no field data. Use ^B7 PDF417, which renders, unless the label is too small for it.

Tested behavior

Example

Mode 7 — two data columns and eleven rows — with a 6-dot row height:

^XA
^FO50,50^BY3
^BFN,6,7
^FDMicroPDF 12345^FS
^XZ

Open in viewer

  • ^B7 PDF417 Bar CodeStacked two-dimensional symbology that holds several hundred bytes, used on driving licenses and shipping documents.
  • ^BX Data Matrix Bar CodeCompact two-dimensional symbology used for small-part marking and GS1 DataMatrix.
  • ^BT TLC 39 Bar CodeTelecommunications composite symbol. A Code 39 symbol carries an equipment identifier, and a MicroPDF417 symbol sits beside it.