Шрифты ZPL: команда ^A, встроенные шрифты, примеры

Обновлено 30 сентября 2026 г.

Команды шрифтов ZPL рядом с термоэтикеткой: масштабируемый шрифт 0, растровые шрифты A и D, OCR-B и текст в UTF-8

Любой текст на этикетке 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 точек/мм). Их можно увеличивать только в целое число раз относительно этой ячейки, поэтому запрошенная высота округляется до ближайшего кратного значения.

Встроенные шрифты ZPL с размером базовой ячейки при 203 dpi
ШрифтТипБазовая ячейка (В × Ш, точек)Примечания
0Масштабируемый15 × 12CG Triumvirate Bold Condensed. Любой размер; обычный выбор для этикеток.
AРастровый9 × 5Мелкий текст, например примечания. Строчные и прописные буквы.
BРастровый11 × 7Только прописные буквы.
C, DРастровый18 × 10C и D одного размера. Строчные и прописные буквы.
EРастровый28 × 15OCR-B. На принтерах 300 dpi — 42 × 20 точек.
FРастровый26 × 13Строчные и прописные буквы.
GРастровый60 × 40Крупный текст для заголовков.
HРастровый21 × 13OCR-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 с поддержкой Юникода, хранящийся в принтере.

Источники