Как настроить печать этикеток со штрихкодами и таблицами на принтере Zebra из 1С?

Программист Торговля и дистрибуция
← На главную

Печать на специализированных принтерах этикеток, таких как Zebra, существенно отличается от работы с обычными офисными принтерами. Часто разработчики сталкиваются с тем, что этикетка «съезжает», штрихкод получается размытым и не читается сканером, а попытка вывести простую таблицу превращается в сложную задачу. В данной статье мы подробно разберем два основных метода работы с принтерами Zebra, выясним причины типичных ошибок и научимся формировать сложные макеты программно.

Метод 1: Печать через стандартный Windows-драйвер (GDI)

Это самый простой способ, при котором принтер Zebra воспринимается системой как обычный принтер. Мы создаем Табличный документ в 1С, размещаем там текст и штрихкоды, а затем отправляем на печать. Однако, чтобы этот метод работал корректно, необходимо выполнить ряд настроек.

Рассмотрим по шагам настройку параметров страницы. Одной из главных проблем является игнорирование принтером размеров этикетки. Для решения этой задачи в коде 1С необходимо жестко задать параметры страницы, используя свойство Custom.

Проанализируем пример кода для настройки макета перед печатью:


ТабличныйДок = Новый ТабличныйДокумент;
// Указываем, что размер страницы будет задан вручную
ТабличныйДок.РазмерСтраницы = "Custom";
// Высота и ширина указываются в миллиметрах
ТабличныйДок.ВысотаСтраницы = 70; 
ТабличныйДок.ШиринаСтраницы = 100;
// Убираем поля, чтобы задействовать всю область печати
ТабличныйДок.ПолеСверху = 0;
ТабличныйДок.ПолеСнизу = 0;
ТабличныйДок.ПолеСлева = 0;
ТабличныйДок.ПолеСправа = 0;
// Устанавливаем масштаб 100%, чтобы избежать искажения штрихкода
ТабличныйДок.АвтоМасштаб = Ложь;
ТабличныйДок.МасштабПечати = 100;

Важно помнить, что даже при правильных настройках в 1С, драйвер принтера может иметь свои установки «по умолчанию». Разберем, на что обратить внимание в настройках драйвера (ZDesigner или Seagull):

  1. Параметры бумаги: В свойствах принтера (Сервер печати) создайте новый тип бумаги с точными размерами вашей этикетки в миллиметрах.
  2. Сглаживание графики: Обязательно отключите сглаживание (dithering) в настройках драйвера. При печати штрихкода через графический драйвер принтер пытается «сгладить» края, из-за чего линии становятся серыми или нечеткими.
  3. Скорость и плотность: Если печать кажется бледной («как будто краска заканчивается»), увеличьте параметр Darkness (Плотность) в настройках драйвера до 15-20 единиц.

Метод 2: Профессиональная печать с использованием языка ZPL

Для высокоскоростной печати и получения идеально четких штрихкодов используется язык ZPL (Zebra Programming Language). В этом случае мы не рисуем макет в 1С, а отправляем принтеру текстовые команды. Принтер сам генерирует штрихкод из переданных цифр, используя свои внутренние алгоритмы.

Выясним преимущества этого метода: штрихкоды всегда имеют идеальную геометрию, печать происходит мгновенно, так как объем передаваемых данных в десятки раз меньше, чем при графической печати. Рассмотрим пример формирования простого ZPL-кода для печати текста и штрихкода:


// ^XA - начало формата
// ^FO - позиция (отступ слева, отступ сверху)
// ^A0N,30,30 - шрифт и его размер
// ^FD - данные поля
// ^BC - штрихкод Code 128
// ^XZ - конец формата
ТекстКоманды = "^XA
|^FO50,50^A0N,30,30^FDНоменклатура: Печенье^FS
|^FO50,100^BCN,60,Y,N,N^FD12345678^FS
|^XZ";

Чтобы отправить этот текст на принтер, можно воспользоваться методом RAW-печати. Самый надежный способ для сетевых принтеров — отправка данных напрямую на IP-адрес принтера через порт 9100. Это позволяет избежать любых проблем с очередями печати Windows и принт-серверами.

Вывод таблиц на языке ZPL

Пользователи часто спрашивают: «Можно ли вывести таблицу командами ZPL?». Да, это возможно, хотя и требует ручного расчета координат. Для рисования линий таблицы используется команда ^GB (Graphic Box).

Разберем пример формирования «сетки» для таблицы:


// Рисуем прямоугольник (рамку таблицы)
// ^GB(ширина),(высота),(толщина линий)
КомандаТаблицы = "^XA
|^FO50,10^GB700,300,3^FS 
|^FO50,100^GB700,3,3^FS // Горизонтальная линия (разделитель шапки)
|^FO150,10^GB3,300,3^FS // Вертикальная линия
|^FO70,50^A0N,30,30^FD№^FS
|^FO180,50^A0N,30,30^FDНаименование^FS
|^XZ";

Если таблица слишком сложная или динамическая, рассмотрим альтернативный вариант: сформировать макет в 1С, сохранить его как картинку (BMP) и отправить на принтер через команду ^GF (Graphic Field). Однако помните, что это замедлит печать.

Работа с русским языком в ZPL

Проанализируем ситуацию, когда вместо русских букв принтер выдает пустые места или непонятные символы. Это происходит потому, что стандартные шрифты Zebra не поддерживают кириллицу по умолчанию. Для решения проблемы выполним следующие действия:

  1. Установка кодировки: В начало ZPL-скрипта добавьте команду ^CI28, которая переключает принтер в режим работы с UTF-8.
  2. Использование Unicode-шрифтов: Убедитесь, что в принтере загружен шрифт с поддержкой кириллицы (например, Swiss 721). Вызов шрифта будет выглядеть так: ^A@N,30,30,E:CYRILLIC.TTF.

Техническое обслуживание и калибровка

Если принтер печатает половину этикетки или пропускает пустые ленты, скорее всего, сбились настройки датчика. Разберем процесс калибровки. На большинстве моделей Zebra необходимо зажать функциональную кнопку (обычно Feed) при включении и держать её до тех пор, пока индикатор не мигнет определенное количество раз (см. инструкцию к конкретной модели).

Также проверьте параметр Print Mode (Режим печати):

Важный совет: Используйте специализированные утилиты, такие как Zebra Setup Utilities. В них есть окно «Direct Communication», где вы можете отправить ZPL-код и мгновенно увидеть результат, не тратя время на отладку кода внутри 1С. Это значительно ускоряет процесс разработки сложных макетов с таблицами.

Подводя итог, выбор метода печати зависит от ваших задач. Если этикетка простая и печатается редко — используйте обычный макет 1С и Windows-драйвер. Если же требуется массовая печать тысяч этикеток в день с гарантированным считыванием штрихкодов — переходите на ZPL. Мы надеемся, что эти рекомендации помогут вам настроить стабильную печать на вашем предприятии.

← На главную