^A@ - Use Font Name to Call Font
Selects a downloaded or built-in font by file name rather than by letter.
^A@ does the same job as ^A: font, rotation and size for one field. It names
the font as a file on a printer drive, not as a single letter. A downloaded
TrueType face therefore needs none of the 36 letter slots.
One difference from ^A matters: the printer remembers the file name, so a later
^A@ that omits it reuses the same font.
Syntax
^A@o,h,w,d:o.xSupport
Every documented parameter renders the same output Labelary produces.
^A@ resolves a path on Z: to the built-in font it names and draws the field in it, at the requested height, width and orientation. A path a ~DY font download occupies resolves too and reports nothing, as on Labelary, but the face is not drawn with: the field prints font A. A path this printer has no font for reports RESOURCE_MISSING and draws font A, which is what Labelary does. — not pinned by a test
Labelary renders this command. Scheduled for milestone 5.9.
Parameters
oOrientationoptional · one of a setRotation of the text.
- Default
- the orientation set by
^FW, or N - Invalid value
- discarded, and the default applies
- Test coverage
- No documented value is exercised by a test (N, R, I, B). The invalid-value rule is not pinned by a test.
N- Normal (default)
R- Rotated 90° clockwise
I- Inverted 180°
B- Read from bottom up, 270°
hCharacter heightoptional · dotsHeight of the character cell in dots. A scalable font takes the value directly; a bitmapped one rounds to the nearest multiple of its base height.
- Default
- the height set by
^CF, or the font's own base height - Invalid value
- discarded, and the default applies. The guide states no range for
^A@, only that an unusable value defaults to the^CFheight or the base height. - Test coverage
- Bounds pinned: past what the shape can hold (99999999999999999999). The invalid-value rule is not pinned by a test.
wCharacter widthoptional · dotsWidth of the character cell in dots.
- Default
- the width set by
^CF, or the font's own base width - Invalid value
- discarded, and the default applies. The guide states no range for
^A@. - Test coverage
- The invalid-value rule is not pinned by a test.
d:o.xFont fileoptional · textThe font to use, as device, name and extension. The extension is .FNT for a Zebra bitmapped font and .TTF for TrueType. The accepted devices are R:, E:, B: and A:; R: is the default.
- Default
- the font last named by
^A@ - Invalid value
- discarded, and the default applies. A name that leads to no font reports
RESOURCE_MISSINGand draws font A. That fallback is font A unconditionally, and is **not** the^CFfont. We measured on 2026-08-21 that^CF0,50,50followed by^A@N,50,50,R:NOPE.FNTdraws font A. The same^CFunder an unrecognized^Aletter draws font 0 instead. An omitted name reuses the name the last^A@gave, and the name last given wins even when it led nowhere. The reported path is normalized, not echoed: it upper-cases, a missing device becomesR:and a missing extension becomes.FNT, sor:small.fntandSMALL.FNTboth reportR:SMALL.FNT. The built-in fonts are files onZ:, which is whyZ:0,Z:0.FNTandZ:GS.FNTall resolve. - Test coverage
- The invalid-value rule is pinned by 1 test.
Behavior
The path comes last, after the size, and holds a device, a name and an extension. The devices are:
R:for volatile memory,E:for flash,B:for a memory card,A:to search all of them.
.FNT names a Zebra bitmapped font, and .TTF names a TrueType one. The
distinction matters for sizing: a printer magnifies a bitmapped font in whole
multiples of its cell exactly as under ^A, and a TrueType face scales freely.
A name carries over once a field gives it. ^A@N,40,40,B:CYRI_UB.FNT and then
^A@N,25,25 prints the second field in the same font at the smaller size.
Nothing clears the name; another file name replaces it.
A file that is not in memory does not suppress the field. The guide defaults to
the font set by ^CF, or to font A where no ^CF precedes it. A format that
relies on a font nobody downloaded therefore prints in the wrong typeface rather
than fails visibly. A font needs a download first, and the renderer implements neither
~DT nor ~DU, so that default is what ^A@ gives here.
^A@ and ^CW are the two ways to reach a downloaded font, and they differ in
scope. ^A@ names the file per field. ^CW binds the file to a letter once, so
that ordinary ^A and ^CF commands can use it.
Tested behavior
Differences from the specification
zpl.tools against Labelary
Where our output differs from Labelary for the same input. These are the differences that break a migration.
Z:E.FNTandZ:H.FNTresolve here and do not on Labelary. OCR-B and OCR-A are resident font files on a Zebra printer, and the guide's own font table lists both, so we resolve them. We measured on 2026-08-19 that Labelary answersFile 'Z:E.FNT' does not existfor each. Every other built-in file agrees:Z:plus0 A B D F G GS P Q R S T U Vresolves on both, andZ:C.FNT,Z:I.FNT,Z:N.FNTandZ:1.FNTresolve on neither. — pinned byocr_a_and_ocr_b_resolve_here_where_labelary_reports_them_missing
Example
A built-in font called by its path, then reused without repeating the name:
^XA
^FO50,40^A@N,40,40,Z:0.FNT^FDFont called by path^FS
^FO50,110^A@N,25,25^FDName carried over^FS
^XZ
Related commands
^AScalable / Bitmapped FontSelects the font, rotation and size for the following field.^CWFont IdentifierAssigns a downloaded font to one of the single-letter font slots.~DTDownload TrueType FontDownloads a TrueType font.~DUDownload Unbounded TrueType FontDownloads a TrueType font with a full, unrestricted character set.^FLFont LinkChains a fallback font onto a base font for characters the base font lacks.