^B5 - Planet Code Bar Code
USPS PLANET postal symbology, retired by the USPS and superseded by Intelligent Mail.
^B5 prints a USPS PLANET symbol, the height-modulated postal code that the
Postal Service used to track inbound mail. The USPS retired PLANET and replaced
it with the Intelligent Mail barcode, which ^BZ type 3 selects. Use ^B5 to
reproduce existing artwork and not for new mailings.
PLANET is a resident bar code in every Zebra printer, so it has a command of its
own and is not only a ^BZ type.
Syntax
^B5o,h,f,gSupport
Every documented parameter renders the same output Labelary produces.
Labelary renders this command.
Parameters
oBar code orientationoptional · one of a setRotation of the symbol and interpretation line.
- Default
- the orientation set by
^FW, which itself defaults toN - Invalid value
- discarded, and the default applies. The renderer reports an unrecognized character as invalid, and uses the default.
- Test coverage
- Values exercised: N, R, I, B. The invalid-value rule is not pinned by a test.
N- No rotation (default)
R- Rotated 90° clockwise
I- Rotated 180°. The symbol reads upside down
B- Rotated 270° clockwise
hBar code heightoptional · dotsHeight of the bars, without the interpretation line.
- Default
- the height set by
^BY, which itself defaults to 10 dots - Accepted range
- 1 to 32000 dots
- Invalid value
- clamped to the nearest allowed value. We measured this against live Labelary on 2026-07-12. The renderer clamps an out-of-range value to the violated bound, and does not ignore it.
- Test coverage
- Bounds pinned: maximum (32000), below the minimum (0), above the maximum (33000). No test at the minimum. The invalid-value rule is not pinned by a test.
fPrint interpretation lineoptional · Y or NWhether the renderer prints the interpretation line.
- Default
- N
- Invalid value
- discarded, and the default applies. The renderer reports any character except
YorN, and uses the default. - Test coverage
- Values exercised: Y, N. The invalid-value rule is not pinned by a test.
Y- Print the text
N- Print the symbol only (default)
gInterpretation line aboveoptional · Y or NWhere the interpretation line sits. It has no effect without that line.
- Default
- N
- Invalid value
- discarded, and the default applies. The renderer reports any character except
YorN, and uses the default. - Test coverage
- Values exercised: Y, N. The invalid-value rule is not pinned by a test.
Y- Above the symbol
N- Below the symbol (default)
Behavior
The accepted characters are the digits 0 to 9, and there is no character-set
escape.
PLANET encodes each digit as five bars of two heights and not as bars and spaces
of two widths, so the symbol does not look like a linear symbology. The ^BY
ratio has no meaning for PLANET, and the height argument applies. The renderer
draws the bars at full height and at half height within that height.
The interpretation line is off by default, unlike almost every other symbology in this category, because a person is not the intended reader of a postal code. We measured this against Labelary on 2026-07-30. With the line on, it shows exactly the digits supplied, and the text carries no check digit.
^BZ covers PLANET as its type 1, together with POSTNET and Intelligent Mail,
and ^BZ does not render yet. ^B5 is therefore the only command that puts a
PLANET symbol on a label today.
Known issues
Tested behavior
Differences from the specification
Labelary against the ZPL II guide
Where Labelary — our compatibility target — behaves differently from the printed specification.
- The guide and Labelary's reference both give the height range as 1-9999. Live Labelary accepts up to 32000 silently, and warns only above that (measured 2026-07-12). The renderer follows the measured bound. — pinned by
test_b5_height_above_documented_spec_max_is_silent,test_b5_height_above_max_clamps
zpl.tools against the ZPL II guide
Where our renderer behaves differently from the specification.
- The guide takes the default orientation from
^FW. The renderer applies^FWto text fields only. A barcode after^FWRprints unrotated unless its ownoargument rotates it. — not pinned by a test
Example
The guide's payload, with the interpretation line turned on:
^XA
^FO50,50^BY3
^B5N,80,Y,N
^FD12345678901^FS
^XZ
Related commands
^BYBar Code Field DefaultSets the module width, wide-to-narrow ratio and height that every later bar code inherits.^FDField DataSupplies the text or barcode content of the field.^FOField OriginSets the top-left corner of the next field.^FTField TypesetPositions the next field by its text baseline rather than its top edge.^BZPostal Bar CodeThe USPS postal symbologies (POSTNET, PLANET and Intelligent Mail), selected by a type argument.