Всем привет.
Купили принтер этикеток Honeywell PC-42d. Опыта работы с принтерами этикеток не было.
На сколько я понял, печатать на него можно либо как на обычный принтер, через специальный драйвер, полностью формируя дизайн чека извне, в графическом виде,
либо на языке принтера, например на ZPL. Как я понял, ZPL - это самый популярный язык, поддерживаемый всеми принтерами этикеток.
Использовать внешние дизайнеры этикеток, как например Bartender, мне не нравится. нужно печатать из своей программы на Delphi.
Решил делать дизайн непосредственно на ZPL и посылать на печать в принтер.
Как печатать на принтер - разобрался
но с самим языком возникли проблемы.
Нужно вывести довольно длинную строку, перенося ее по словам или просто разрезая, но при этом не вылазя за пределы отведенного поля.
Для этого в ZPL есть команда ^TB
Код:
^XA
^CI 28
^FO 30, 30 ^A0,25 ^FDРИМ №5701^FS
^FO 20, 60 ^GB 420,2,2 ^FS
^FO 30, 160 ^GB 410,160,1 ^FS
^FO 30, 160
^A0,30
^TBN,410,160
^FDМамонтова Евгения Александровна 123 фываацвафывфыдлвфы фывфыльтдфжыль последнееслово^FS
^XZ
В визуализаторе ZPL на сайте labelary точка com выглядит так как и ожидается.
Рамка вокруг TB сделана для того что бы видеть как ограничен TB.
Но при отправке этого кода на принтер, переноса строки не возникает, она уходит за край этикетки, и за край объявленного текстбокса. Что-то работает не так.
Обновил прошивку принтера.
T10.15.017559 - была в принтере исходно.
T10.17.019825 - обновил до этой.
Стало еще хуже. Поведение TB не поменялось, но теперь принтер перестал печатать пробелы, все в одну строчку, и не только в ^TB.
Даунгейд прошивки оказался невозможен :(
Вопросы:
- это кривые прошивки или я что-то делаю неправильно в ZPL?
- как восстановить печать пробелов?
- пользуется ли кто-то в реальной жизни печатью через ZPL или все формируют этикетки как картинку, во внешнем софте?
- есть ли интернет-ресурс где можно почитать/проконстультироваться по использованию ZPL?
Доку на ZPL от Zebra и от Honeywell я естественно смотрю, но они местами и не совпадают.
По ^TB разночтений нет, но может быть есть что-то за рамками этой команды, влияющее на ее работу.
Приложены 2 файла. Один - как выглядит на принтере, второй - как в онлайн-визуализаторе. Код ZPL один и тот же.