Что такое ZPL? Язык программирования Zebra
Обновлено 23 июня 2026 г.
ZPL (язык программирования Zebra) — командный язык, который используют принтеры Zebra и Zebra-совместимые термопринтеры для описания этикеток. Вместо готового изображения, как в офисных принтерах, ZPL-принтер получает небольшой блок обычного текста — команды, которые говорят «разместить этот текст здесь, нарисовать штрихкод там, напечатать одну копию» — и самостоятельно рендерит этикетку на полном разрешении принтера за миллисекунды.
Именно поэтому ZPL доминирует в сферах доставки, складского хранения, розничной торговли и медицинской маркировки с 1980-х годов: данные, отправляемые на принтер, имеют минимальный объём, их может генерировать что угодно, способное производить текст (ERP-система, скрипт, браузер), а аппаратная часть принтера берёт на себя основную работу. Практически каждый принтер Zebra, выпущенный с начала 1990-х, понимает ZPL II — актуальную на сегодняшний день редакцию — как и многие принтеры других брендов, заявляющие поддержку «ZPL-совместимой» эмуляции.
Как выглядит ZPL-этикетка
Документ ZPL — это последовательность команд, каждая из которых начинается со знака крышки (^). Каждая этикетка обёрнута между ^XA (начало формата) и ^XZ (конец формата). Ниже представлена полная, рабочая этикетка:
^XA
^CF0,40
^FO50,50^FDHELLO WORLD^FS
^FO50,110^GB700,4,4^FS
^BY3,2,100
^FO150,150^BCN,100,Y,N,N^FD12345678^FS
^XZРазберём строка за строкой:
^XA…^XZ— открывает и закрывает формат этикетки. Всё, что находится между ними, описывает одну этикетку.^CF0,40— устанавливает шрифт по умолчанию: масштабируемый шрифт 0 высотой 40 точек.^FO50,50— Field Origin (начало поля): позиционирует следующее поле в 50 точках от левого края и в 50 точках от верхнего края.^FDHELLO WORLD^FS— Field Data (данные поля) с последующим Field Separator (разделителем поля): фактическое содержимое поля.^GB700,4,4— рисует Graphic Box (прямоугольник) шириной 700 и высотой 4 точки — здесь используется как горизонтальная разделительная линия.^BY3,2,100затем^BCN,100,Y,N,N— задаёт параметры штрихкода по умолчанию (ширина модуля, соотношение, высота), затем рендерит штрихкод Code 128 с данными12345678и строкой для считывания человеком под ним.
Точки, а не пиксели: понимание DPI
Каждая координата и размер в ZPL измеряются в точках принтера, а физический размер точки зависит от разрешения печатающей головки. Наиболее распространённые разрешения: 203 dpi (8 точек/мм), 300 dpi (12 точек/мм) и 600 dpi (24 точки/мм). На принтере 203 dpi транспортная этикетка 4 × 6 дюймов составляет 812 × 1218 точек; на принтере 300 dpi та же этикетка — 1200 × 1800 точек. ZPL, написанный для одного разрешения, будет печататься меньше или больше на другом — это самая распространённая причина проблемы «этикетка выглядит неправильно на новом принтере»: размеры необходимо масштабировать под целевой DPI.
ZPL vs. EPL vs. печать через драйвер
Вы также можете встретить EPL (Eltron Programming Language) — более старый и простой язык, используемый некоторыми устаревшими настольными принтерами; современные принтеры Zebra принимают оба языка, но для новых задач следует использовать ZPL. Альтернативой обоим является печать через драйвер, при которой драйвер Windows или CUPS преобразует отрендеренную страницу в команды принтера. Драйверы удобны для печати из Word или просмотрщика PDF, однако сырой ZPL даёт точное позиционирование, более чёткие штрихкоды, значительно меньший объём передаваемых данных и возможность печатать из систем, где установка драйверов нецелесообразна — именно поэтому специализированное программное обеспечение для этикеток работает с ZPL.
Как писать — или генерировать — ZPL
Для разовой этикетки написать ZPL вручную, открыв справочник команд, вполне реально: язык небольшой, и горстки команд (^FO, ^FD, ^A, ^BC, ^GB) достаточно для большинства реальных этикеток. Сложности начинаются, когда нужно итерировать компоновку — каждая правка означает изменение координат в точках, повторную отправку файла и расход рулона этикеток.
Именно эту проблему решают визуальные конструкторы. ZPLCraft предоставляет холст в натуральную величину, где вы перетаскиваете текст, штрихкоды, линии и рамки на нужное место, а соответствующий ZPL генерируется за вас — с правильным масштабированием под DPI вашего принтера и штрихкодами, которые сканируются. Вы можете экспортировать код в любую систему, уже отправляющую ZPL, или печатать прямо из браузера через USB без установки чего-либо.
Часто задаваемые базовые вопросы
ZPL бесплатный?
Да. ZPL является де-факто открытым стандартом: Zebra публикует полное руководство по программированию ZPL II, и никаких лицензий не требуется. Его может создавать любой текстовый редактор.
Какое расширение файла используется для ZPL?
Обязательного расширения не существует — ZPL является обычным текстом. В практике встречаются .zpl, .txt и .prn; принтерам это безразлично — они просто потребляют поток байтов.
Можно ли просматривать ZPL без принтера?
Да — сервисы рендеринга, такие как Labelary, конвертируют ZPL в изображение, а редактор ZPLCraft отображает живой предпросмотр этикетки в процессе проектирования, поэтому рулон этикеток расходуется только тогда, когда компоновка окончательно готова.