^B1 - Code 11 Bar Code
Numeric-only symbology used in telecommunications, with one or two check digits.
^B1 prints a Code 11 symbol, also known as USD-8. Its designers made it for
labels on telecommunications equipment. It is numeric, it is not self-checking,
and it needs check digits to be reliable, which makes it a poor choice for other
work. Use ^B3 Code 39 or ^BC Code 128 unless a telecommunications standard
names Code 11 specifically.
Syntax
^B1o,e,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
eCheck digit countoptional · Y or NCode 11 always carries a check digit; this argument chooses how many.
- Default
- N
- Invalid value
- discarded, and the default applies. The renderer reports any character except
YorN, and uses two check digits. - Test coverage
- Values exercised: Y, N. The invalid-value rule is not pinned by a test.
Y- One check digit
N- Two check digits (default)
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: below the minimum (0), above the maximum (33000). No test at the minimum or maximum. The invalid-value rule is not pinned by a test.
fPrint interpretation lineoptional · Y or NWhether the renderer prints the interpretation line.
- Default
- Y
- 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 (default)
N- Print the symbol only
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 character set is the ten digits and the hyphen. Each character is three bars and two spaces.
Code 11 always carries at least one check digit. The e argument chooses one or
two check digits, and the default is two. The printer appends the check digits to
the encoded data and prints them in the interpretation line, so the text
under the symbol is longer than the field data.
We measured this against Labelary on 2026-07-30. ^FD123456 prints as 12345611
with the default two check digits, and as 1234561 with e set to Y.
Labelary's own reference describes the argument in the opposite direction, as a
flag for an "extra" check digit. Labelary matches the guide, and this page
documents the guide.
The internal start and stop characters also appear in the interpretation line, as small triangles on each side of the digits. The number of check digits selects the stop character, so the two settings look different.
Code 11 is a two-width symbology, so the ^BY ratio applies over the guide's
range of 2.0:1 to 3.0:1. The width of the label limits the field data. For a
rotated symbol, the length of the label limits it.
Known issues
Tested behavior
Differences from the specification
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
Six digits with the default pair of check digits, so the interpretation line reads 12345611:
^XA
^FO50,50^BY3
^B1N,N,80,Y,N
^FD123456^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.