Шрифты ZPL: команда ^A, встроенные шрифты, примеры
ZPLCraftОбновлено 30 сентября 2026 г.

Любой текст на этикетке Zebra рисуется шрифтом принтера, выбранным командой ^A (или значением по умолчанию из ^CF). Чтобы правильно работать со шрифтами, нужно сделать три вещи: выбрать подходящий встроенный шрифт, задавать размер в точках принтера, а не в пунктах, и убедиться, что принтер способен нарисовать отправляемые символы.
В руководстве разобраны синтаксис ^A, все встроенные шрифты с их базовыми размерами, изменение размеров между 203 и 300 dpi, международные символы с ^CI28 и собственные шрифты TrueType, хранящиеся в принтере. Пример ниже можно открыть в бесплатном ZPL-просмотрщике и менять в реальном времени.
Команда шрифта ^A
Поле использует шрифт, заданный непосредственно перед данными этого поля. Команда принимает имя шрифта, ориентацию, а также высоту и ширину в точках:
^Afo,h,w- f — имя шрифта: 0 для масштабируемого шрифта, A–H и P–V для растровых шрифтов либо односимвольный псевдоним, назначенный командой ^CW.
- o — ориентация: N обычная, R поворот на 90° по часовой стрелке, I перевёрнутая на 180°, B чтение снизу вверх (270°).
- h — высота символа в точках.
- w — ширина символа в точках. Если её опустить, принтер рассчитает её по высоте.
Распространённый приём в рабочих шаблонах — один раз задать значение по умолчанию командой ^CF и переопределять его через ^A только там, где полю нужен другой размер:
^XA
^CF0,30
^FO40,40^FDDefault font 0 at 30 dots^FS
^FO40,90^A0N,60,60^FDLarger heading^FS
^FO40,170^A0B,40,40^FDRotated 270^FS
^XZВстроенные шрифты ZPL и их размеры
Принтеры Zebra поставляются с одним масштабируемым контурным шрифтом и набором фиксированных растровых шрифтов. У растровых шрифтов есть базовая ячейка символа, измеряемая в точках при 203 dpi (8 точек/мм). Их можно увеличивать только в целое число раз относительно этой ячейки, поэтому запрошенная высота округляется до ближайшего кратного значения.
| Шрифт | Тип | Базовая ячейка (В × Ш, точек) | Примечания |
|---|---|---|---|
0 | Масштабируемый | 15 × 12 | CG Triumvirate Bold Condensed. Любой размер; обычный выбор для этикеток. |
A | Растровый | 9 × 5 | Мелкий текст, например примечания. Строчные и прописные буквы. |
B | Растровый | 11 × 7 | Только прописные буквы. |
C, D | Растровый | 18 × 10 | C и D одного размера. Строчные и прописные буквы. |
E | Растровый | 28 × 15 | OCR-B. На принтерах 300 dpi — 42 × 20 точек. |
F | Растровый | 26 × 13 | Строчные и прописные буквы. |
G | Растровый | 60 × 40 | Крупный текст для заголовков. |
H | Растровый | 21 × 13 | OCR-A, только прописные буквы. На принтерах 300 dpi — 34 × 22 точки. |
P–V | Растровый | 20 × 18 … 80 × 71 | Фиксированные размеры от 20 × 18 до 80 × 71 точки, доступны на некоторых моделях принтеров. |
Шрифт 0 уже является жирным узким шрифтом, поэтому большинство транспортных и складских этикеток используют его для всего — от адресов до крупных сортировочных кодов.
Примеры шрифтов ZPL
Эта этикетка печатает по одной строке каждым из распространённых встроенных шрифтов, а также повёрнутое поле. Она написана для этикетки шириной 4 дюйма при 203 dpi.
^XA
^PW812
^LL620
^CI28
^FO40,30^A0N,50,50^FDFont 0 (scalable) at 50 dots^FS
^FO40,100^A0N,30,30^FDFont 0 at 30 dots^FS
^FO40,150^AAN,18,10^FDFont A 9x5, magnified x2^FS
^FO40,190^ABN,22,14^FDFONT B 11X7 X2^FS
^FO40,230^ADN,36,20^FDFont D 18x10 x2^FS
^FO40,290^AEN,28,15^FDFont E OCR-B^FS
^FO40,340^AFN,26,13^FDFont F 26x13^FS
^FO40,390^AGN,60,40^FDG 60x40^FS
^FO40,470^AHN,21,13^FDFONT H OCR-A^FS
^FO740,30^A0R,30,30^FDRotated with R^FS
^XZОткрыть образец шрифтов в ZPL-просмотрщике
В просмотрщике можно менять высоту и ширину и наблюдать, как растровые шрифты меняются скачками по целым кратностям, а шрифт 0 масштабируется плавно.
Размер шрифта в точках: 203 и 300 dpi
ZPL измеряет всё в точках принтера, а не в пунктах или миллиметрах. У принтера 203 dpi 8 точек на миллиметр, у принтера 300 dpi — 12. Поэтому одна и та же команда ^A0N,40,40 печатает текст высотой около 5 мм на принтере 203 dpi, но лишь около 3,4 мм на принтере 300 dpi.
Чтобы перевести размер в пунктах в точки, умножьте его на разрешение принтера и разделите на 72. Строка 12 пт — около 34 точек при 203 dpi и 50 точек при 300 dpi. При переносе этикетки между принтерами с разным разрешением масштабируйте высоту, ширину и положение каждого шрифта в одинаковой пропорции (300 ÷ 203 ≈ 1,48).
Шрифт по умолчанию с помощью ^CF
Команда ^CF меняет шрифт по умолчанию для всех следующих полей, у которых нет собственной команды ^A. ^CF0,30 делает шрифт 0 размером 30 точек шрифтом по умолчанию; ^CFA,18 переключает на растровый шрифт A в двойном размере. Если задать шрифт по умолчанию в начале формата, каждое поле становится короче, а этикетку проще сопровождать.
Диакритика, Юникод и международные символы
По умолчанию многие принтеры интерпретируют данные полей в устаревшей однобайтовой кодовой странице, поэтому буквы с диакритикой, символы валют или нелатинские алфавиты могут печататься неверными символами. Добавьте ^CI28 в начало формата, чтобы сообщить принтеру, что данные полей — в UTF-8.
^XA
^CI28
^FO40,40^A0N,40,40^FDMüller GmbH — 25 €^FS
^XZКодировка решает лишь половину задачи: выбранный шрифт должен ещё и содержать нужные глифы. Встроенный шрифт 0 покрывает западноевропейские буквы, но для китайского, японского, корейского, арабского текста или кириллицы обычно требуется шрифт TrueType с поддержкой Юникода, установленный в принтере. Если символ нельзя безопасно ввести, ^FH позволяет записать его шестнадцатеричными экранированными последовательностями внутри ^FD.
Собственные шрифты TrueType: ^A@ и ^CW
Большинство современных принтеров Zebra умеют хранить шрифты TrueType или OpenType во флеш-памяти (обычно на диске E:). Загрузите шрифт через Zebra Setup Utilities или командой загрузки ~DY, затем вызывайте его по имени файла командой ^A@, например ^A@N,40,40,E:ARIAL.TTF.
Если этикетка многократно использует один шрифт, ^CW назначает ему однобуквенный псевдоним, и вместо полного пути можно писать ^AZ. Загруженный шрифт существует только в том принтере, в который был отправлен, поэтому на каждом принтере парка должен быть один и тот же файл шрифта — иначе этикетки напечатаются по-разному.
^XA
^CWZ,E:ARIAL.TTF
^FO40,40^AZN,40,40^FDArial via alias Z^FS
^FO40,100^A@N,40,40,E:ARIAL.TTF^FDArial by file name^FS
^XZКак шрифты отображаются в предпросмотре ZPL
Шрифты принтеров Zebra являются проприетарными, поэтому ни один онлайн-просмотрщик не может воспроизвести их пиксель в пиксель. Просмотрщик ZPLCraft использует лицензированные заменители с теми же размерами ячеек и метриками для встроенных шрифтов и помечает всё, что не может нарисовать. Используйте предпросмотр для проверки компоновки и размещения, а интервалы и переносы строк подтвердите одной тестовой печатью.
Вопросы о шрифтах ZPL
Какой шрифт в ZPL используется по умолчанию?
Если формат не задаёт шрифт командой ^CF или ^A, принтеры используют растровый шрифт A. На практике почти все этикетки явно задают шрифт 0 — масштабируемый CG Triumvirate Bold Condensed.
Как сделать текст жирным в ZPL?
В ZPL нет атрибута «жирный». Шрифт 0 уже является жирным узким шрифтом; чтобы сделать текст плотнее, увеличьте его ширину относительно высоты либо установите в принтер жирный шрифт TrueType и выберите его командой ^A@.
Почему текст печатается не того размера, который я ожидал?
Либо этикетка была написана для другого разрешения принтера, либо растровый шрифт округлился до ближайшей целой кратности. Используйте шрифт 0, когда нужны точные размеры, и пересчитывайте значения в точках при переходе между 203 и 300 dpi.
Почему символы с диакритикой или нелатинские символы печатаются неправильно?
Добавьте ^CI28, чтобы принтер читал данные полей как UTF-8, и убедитесь, что выбранный шрифт содержит нужные символы. Для письменностей вроде китайской или арабской обычно нужен шрифт TrueType с поддержкой Юникода, хранящийся в принтере.