Маркировка: Язык EZPL принтеров GODEX и программа GoLabel

Число просмотров: 2,208 
3 оценки, среднее: 4.67 из 53 оценки, среднее: 4.67 из 53 оценки, среднее: 4.67 из 53 оценки, среднее: 4.67 из 53 оценки, среднее: 4.67 из 5 (3 голосов, средний: 4.67 из 5)
Вы должны быть зарегистрированным пользователем чтобы голосовать за эту запись.

Принтер Godex G500 и напечатанные этикетки на EZPL

Всем привет! Вот блин когда я ради прикола делал себе расклад на Таро на тему того, какой из принтеров мне брать: WAGO SmartPrinter или GODEX G500, который я в итоге и купил, то там про Godex было сказано что он будет родным чем-то. И тогда я ещё тупил как это читать в раскладе и о чём речь шла =) В итоге оказалось, что я с этим принтером разве что только ещё не спал в обнимку. Я с ним постоянно таскаюсь и чего-нибудь печатаю или генерирую новые идеи о том, как бы его применить. Если вы помните предыдущий пост про него (на который я ссылку давал в начале абзаца), то вы видели что я печатал на Godex маркировку для модульки, кабелей и прочих штуковин в щитах. У меня появились идеи применить его ещё и для того, чтобы печатать всякие этикетки на коробки с материалами, на папки с документами по щитам (чтобы не потерять) и для кучи всего другого.

Но встал один вопрос: как сократить геморрой, связанный с постоянной перенастройкой свойств принтера в Windows под разные этикетки и параметры печати? Конечно же, этот вопрос я решил (потому что большинство материала на блоге как раз и пишется в состоянии “Я – сделал! И могу вам сделать так же!”), но я хочу показать вам то, как я дошёл до своих решений и с чем столкнулся.

Первое, с чего всё началось – это с того, что я понакупил разных этикеток разного типа и размера для экспериментов. В какой-то момент меня задолбало вспоминать, какой рулон какие размеры имеет и как выглядит, и я сделал себе лист из кусочка обложки папки, на котором все свои этикетки и понаклекил и подписал, какая для чего у меня используется.

Различные типы и форматы этикеток для печати

Некоторое время (довольно небольшое) я делал всё, как описывал в прошлых постах: брал WAGO SmartScript, подбирал там шаблон и макет этикетки, менял текст и печатал всё это на принтере. У меня начали собираться файлы шаблонов. Каждый из них я открывал руками, менял там данные на те, которые мне нужны сейчас, настраивал принтер и печатал. Вроде всё шло ровно и гладко и мне даже нравилось, но внутри точил какой-то червь, который вкрадчиво говорил мне, что СТОЛЬКО возни ради того, чтобы напечатать одну этикетку на папку с документами – это хрень и что надо думать дальше, как это всё автоматизировать и упрощать!

Ну а потом – я ЗАДОЛБАЛСЯ, после того как раз пять поделал такие этикетки, и стал изучать тему принтеров маркировки глубже, чтобы упростить себе задачу. Ничего пока не понятно, да? ;) В чём был геморрой? А вот я сейчас и расскажу. Итак, если мы хотим сделать какую-то этикетку в любой программе (можно хоть в Word), то сначала нам надо её отрисовать и несколько раз протестировать, как она печатается: не вылезает ли за ленту этикеток, всё ли печатается, ничего ли не теряется? После того, как мы изведём несколько метров этикеток, мы получим наш шаблон. Положим, он будет выглядеть вот как-то так:

Разработка этикетки в программе WAGO SmartScript

Это скриншот заготовки двух этикеток в WAGO SmartScript. Каждый раз, когда нам надо напечатать какие-нить этикетки на материалы, нам надо открывать наш шаблон и вручную набивать тексты – как там звали контрагента, какой у него номер заказа был и прочее. И это у меня ещё простенькая этикетка, для тестирования! А вот когда я начал печатать шильдики на щиты – то тогда и начал плакать, заполняя данные вручную из своей 1Ски для каждого щита. Всего лишь ради одной-двух наклеек.

Но это ещё не вся часть геморроя. Ведь этикетки у меня же РАЗНЫЕ! Например есть 100х60 для печати шильдиков на крупные щиты. А есть 100х35 для материалов или 58х30 для мелких наклеек на папки с документами. Для КАЖДОЙ из них надо было создать свои настройки печати и подогнать принтер и шаблон под них. Вон, сколько их пришлось добавить. И это ещё хорошо, что в драйверах Godex есть фича экспорта-импорта этих настроек. Иначе было бы совсем плохо.

Настройка драйверов принтера под нужный формат печати

Дальше мы берём наши этикетки и заправляем их в принтер.

Установка этикеток нужного формата в принтер

…но и это ещё не всё! Если мы печатаем из-под Windows, то после этого принтер надо почти всегда калибровать! Для этого мы выключаем его питание, зажимаем кнопку, включаем питание. После того как принтер пикнет, отпускаем кнопку. И принтер радостно пролистывает некоторое количество ленты с этикетками (от нескольких сантиметров до метра), подстраивая датчики под их размеры.

Куча этикеток ушла в труху при калибровке принтера

Ну а потом можно печатать наши две или четыре этикетки на материалы.

Напечатанная этикетка из программы WAGO SmartScript

Полезным от этого всего было то, что задания печати оставались в очереди принтера (для этого в Windows-настройках печати надо поставить галочку “Сохранять задания после печати”) и при желании их можно было повторить ещё раз (выбрав из контекстного меню пункт “Перезапустить”).

Задание печати от WinPrint осталось в системе

Вот честно. Вы бы расстроились, купив принтер, в котором есть тьма возможностей (и сетка, и большой рулон риббона, и большая ширина печати), и КАЖДЫЙ РАЗ при смене этикеток выкидывая ТАКОЙ кусок этикеток в помойку? А если это будут этикетки для модульки, которых на таком кусок может быть штук 100 из рулона в 3000 штук?

Огромный расход этикеток при печати WinPrint

И вообще, вас бы радовал весь этот геморрой с перенастройкой свойств принтера для каждого типа этикеток? Меня дико не радовал и я даже пытался себе врать, что я типа принимаю этот принтер таким какой он есть и что на самом деле всё хорошо и так и надо, и ничего не поделаешь. И что все остальные системы печати из 1С, из специальных программ якобы сложные, потому что там есть какой-то язык программирования EZPL, нужны какие-то компоненты и что наверное там каждую точечку этикетки надо будет программировать или нудно вычислять, какая ширина текста будет в точках, чтобы правильно его рисовать… А самое “страшное”, чего я боялся – что все мои этикетки в итоге смогут быть только простыми и лаконичными, и что кроме текста ничего в них не напишешь.

Но я ошибался, потому что может быть лет десять назад именно всё так и было (когда я админил на Фабрике АБТ), но сейчас всё проще и интереснее. Но перед тем, как радоваться новым интересностям, я расскажу немного теории, чтобы опять же тот, кто читает этот пост, не боялся и знал, с чем он столкнётся. Ну а вообще именно Godex меня пропёр своей техподдержкой, своей лаконичностью и удобностью, что я с их принтерами работать дальше и хочу и буду рекомендовать их всем, кто спросит.

Итак, для любого принтера (даже обычного) есть два способа печати. Один из них можно обозвать как WinPrint, а другой как RAW. Мы чаще всего пользуемся именно WinPrint’овским способом, когда печатаем при помощи штатных диалогов “Печать…”, где можно выбрать число копий, двухстороннюю печать и прочие настройки принтера. Windows создаёт для нас задание печати, следит за тем, пошло ли оно на принтер и управляет самим принтером. Если почитать программерские книжки по поддержке печати в Windows, то там будет рассказано о том, как операционная система считывает метрики принтера, страницы, печатаемого документа. Как программы получают размеры TrueType-шрифтов, как это всё правильно масштабируется и рисуется на DC (Device Context или Canvas в Deplhi) принтера так же как на экране.

Технически в этом случае на принтер передаётся огромный метафайл (картинка в формате EMF), который принтер поточечно выводит на бумагу или этикетку, совершенно не зная про конкретные шрифты, про страницу и прочее. И вот для всего этого принтеру и требуются настройки бумаги и полей. В том числе такие же настройки требуются и для этикеточного принтера. А если их задать неправильно – то мы получим или плохо отмасштабированную этикетку или хрен знает что. Поэтому для этого способа печати и надо будет постоянно лазить настройки дров и калибровать принтер под текущие этикетки.

А ещё иногда бывают проблемы с масштабированием. Например Visio на обычных принтерах умеет масштабировать всё так, что даже точные миллиметры соблюдаются, а на Godex масштаб всегда сбивается в 100 раз меньше. Зато тут у нас есть куча удобных галочек и ещё и Windows штатно следит за заданиями печати, и может их даже нам на память сохранить, как я выше и показывал.

Но те, кто знакомы со всякими промышленными (и не очень) принтерами, знают что у некоторых принтеров есть свой собственный язык команд. Насколько я знаю – у HP это язык PCL. Такой же по смыслу язык есть у Adobe с своих PDF и других продуктах. Эти языки я обозвал у себя в посте типом RAW, потому что если мы общаемся с принтером таким языком, то на него передаются низкоуровневые команды, а не какой-нибудь там отрисованный метафайл.

Мда, кривоватое пояснение получилось. В общем, у некоторых принтеров есть способ забить на WinPrint нафиг и работать с принтером совсем-совсем напрямую. Загрузить в него JPEG и сказать: “А нарисуй-ка его вот тут!” или загрузить шрифт(ы) и попросить его написать ими текст. В обычных принтерах такое используется, скорее всего, во всякой полиграфии. А вот для принтеров этикеток и штрих-кодов такой способ работы наоборот – самый что ни на есть основной!

Самое главное – это то, что такие команды принтер понимает НАПРЯМУЮ без Windows. Поэтому в этом случае никакие настройки драйверов (размер бумаги и прочее) не действуют ВООБЩЕ. Для нас это очень-очень хорошо, потому что мы сможем моментально перенастраивать принтер на нужную нам этикетку программно!

Так вот у GODEX есть свой собственный язык команд – EZPL (EZ Programming Language), при помощи которого с принтером можно делать что угодно: он становится как послушная зверушка. Я попробую свести в кучу всё, что узнал про этот язык. Большинство этой информации подходит ко всем другим принтерам (Zebra, например). Ну разве только что команды будут различаться.

  • Команды чаще всего текстовые и пишутся английскими буквами со специальными управляющими символами – например “^H10″.
  • Все координаты объектов даются в точках. Если нам нужны миллиметры – то надо будет самостоятельно пересчитать точки в миллиметры в зависимости от текущего разрешения принтера.
  • Команды можно давать как на терминал – сразу пачкой, частями. В конце всего даётся специальная команда, которая и заставляет принтер напечатать то, что вы в него понапосылали. У Godex это команда “E” (без управляющего символа).
  • В этом случае принтер ВООБЩЕ не знает ни о каких шрифтах или картинках. Поэтому всё, что вы хотите на нём печатать – вам придётся в него загрузить руками. Вот хотите напечатать JPEG-логотип? Загружайте его в принтер, и печатайте. Это – самое главное отличие от технологии WinPrint, где на принтер просто посылается готовая картинка. Со шрифтами – точно также. Можно загрузить в принтер TrueType-шрифт, и он будет его рисовать и масштабировать сам.
  • Память принтера ограничена и построена на базе Flash-технологии. Поэтому слишком много в него непоназагружаешь – или не хватит места, или если постоянно загружать всё подряд, внутренняя флешка сдохнет. Но обычно этого не требуется, потому что в итоге, когда с принтером осваиваешься и затачиваешь его под свои нужды, из шрифтов будет нужно два-три или пять, а из картинок – чуть ли не один логотип, и больше ничего.
  • Внутри память принтера разбита на ячейки, которые обозначаются буквами английского алфавита A-Z. И в командах и пишется что-то типа “ATA” – текст шрифтом из ячейки “A”.
  • Все штрих-коды рисуются самим принтером тоже командами. Поэтому можно забыть про всякие платные обработки рисования штрих-кодов для 1С, например.
  • Через эти команды можно настроить все-все, даже системные параметры принтера: и нагрев, и скорость печати и кучу всего ещё.
  • А самое главное в том, что если мы меняем размер этикетки командами EZPL, то принтеру нафиг не нужна перекалибровка! Если мы поменяли размер и заправили новые этикетки, то первую-вторую из них он напечатает криво, а потом сразу сам подстроится под новый размер! И прощай, длинные метры ленты! УРА! Иногда бывают и косяки, и не всегда принтер перестраивается гладко. Но одна перекалибровка на десяток смен этикеток – это вам не каждый раз по метру ленты выкидывать!

И вот тут я испужался: это ж придётся читать PDF на 200 страниц на английском, потом изучать всякие координаты, команды и пробовать, пробовать… Но оказалось всё гораздо проще. Конкретно у Godex вместе с принтером идёт программа GoLabel, в которой можно проделать всё тоже самое, что можно делать командами принтера. И вот про неё я сегодня порасказываю.

Единственное, что у этой программы дерьмовое – это интерфейс. Вот насколько Godex красиво написал свои драйвера для принтера, в которых очень много настроек, удобных окошек, настолько плохо у него сделана GoLabel. Самое главное – в ней нет функции отмены последнего действия (Ctrl+Z или Alt+Backspace). Случайно ткнул мышкой не туда – и сдвинул какую-нибудь рамку этикетки. Ну а сами менюшки и рабочая область сделаны под мудацкий ленточный интерфейс, в котором хер что найдёшь: без надписей кнопки непонятны, потому что использованы нестандартные значки, а с надписями кнопки отжирают огромную часть экрана.

Но временно (потому что потом я покажу, как я сделал кучу шаблонов) от этой программы никуда не деться, потому что при помощи неё можно сделать кучу низкоуровневых настроек принтера: например, настроить IP-адрес для того, чтобы он работал по сети, а не по USB. Программа может работать в один момент времени только с одним принтером. Каким именно – надо указать в настройках программы “Основной -> Настройки Печати -> Интерефейс принтера”.

Внимание! Если принтер сетевой, то программа коннектится к принтеру по TCP/IP и для неё надо создать правило в файерволле. Если правила не будет и файерволл будет блокировать доступ программы к сетке, то она будет показывать ошибку подключения к принтеру и сразу же падать. Видать разработчики где-то в коде решили не делать парочку проверок на ошибки открытия порта TCP/IP в расчёте “А, ну если тут прошло – то уже ничего не будет”.

Главное окно программы поделено на выбор всяких объектов для рисования и на область команд справа. Эта область команд и есть самая главная фишка программы, и нам она потом очень-очень пригодится для создания своих шаблонов.

Программа GoLabel: рабочая область для рисования этикетки

Сразу же при запуске программа спрашивает нас, этикетку какого размера мы хотим создать. Рисует она её странно: левые-правые поля показывает верно, а верх-низ куда-то смещает за границы этикетки. Поэтому я указываю только левые-правые поля, а верх-низ – нет.

Программа GoLabel: настройка размеров этикетки

На другой вкладке можно настроить ещё и тип этикетки. Если вы помните прошлый пост, то такие же настройки были в драйверах принтера. Но там их пришлось бы менять каждый раз, а в GoLabel они будут храниться для каждой этикетки персонально.

Программа GoLabel: настройка типа этикетки

Также в GoLabel есть все системные команды принтера. Принтер можно откалибровать, перезагрузить, закачать в принтер какие-нибудь объекты или удалить их оттудова. Интерфейс программы всё-таки ужасен. Он напоминает мне полукривые поделки на Visual Basic, увешанные тьмой компонентов =)

Программа GoLabel: меню для системных настроек принтера

При помощи GoLabel можно настроить самое главное – IP-адрес принтера, чтобы он работал по сети. Я у себя подсел на сетевые принтеры и давно забыл про USB кроме флешек. Сейчас даже всякие контроллеры по сетке прогаются.

Программа GoLabel: настройки IP-адреса принтера

Если хочется – то ещё можно настроить принтер так, чтобы он и EMail слал при всяких ошибках или работал по SNMP. И напоминаю, при этом принтер стоит около 20-22 тыр!

Программа GoLabel: настройки SNMP и EMail-уведомлений от принтера

Чтобы чего-нибудь делать с нашей этикеткой, надо выбрать какой-нибудь объект (линию, прямоугольник, штрих-код или текст) слева на панели и нажать на него один раз мышкой. А после этого ткнуть мышкой в этикетку. Сразу откроется окно всех возможных настроек для элемента. Я выбрал обычный штрих-код по EAN13, но вариантов этих кодов – навалом. Для каждого штрих-кода настраиаются его высота, ширина и поворот.

Настройки для обычного штрихкода

Попутно надо упомянуть о том, что все элементы этикетки относительно друг друга можно переставлять на передний или задний план. Это будет надо, если мы хотим сделать вокруг штрих-кода например рамку. В некоторых случаях сам напечатанный штрих-код по размерам меньше, чем поле, которое для него отводится. И нам надо или делать дофига пустого места вокруг, чтобы штрих-код не перекрывал рамку, или просто поместить штрих-код под рамку. Вот для этого эти команды и нужны.

Изменение расположения элементов этикетки

Технически в EZPL это реализовано по местоду “Кто первый встал – того и тапки”. Что первым нарисовали – то и будет под следующим нарисованным. Также можно рисовать всякие другие штрих-коды. Например QR-код, который сейчас везде популярен. Это код, который может содержать многострочный текст. Сейчас у нас удобно кодировать в него какой-нибудь URL: с информацией про товар, объект или чего-нибудь подобное.

Настройки для отрисовки QR-кода

Размер QR-кода напрямую зависит от количества данных, которые в нём закодированы. Чем длиньше строка текста – тем больше сам код по ширине и высоте. Поэтому проверяйте размер кода на максимально длинной строке данных, чтобы он у вас потом за край этикетки не вылез. Для меня ещё и ещё раз было удивительно то, что принтер все эти коды генерирует сам. Например для QR-кода ему достаточно дать команду типа “W6,14,5,2,Q,8,5,16,0 http://cs-cs.net“, и всё будет нарисовано аппаратно.

Теперь поразбираемся со шифтами. В них есть много наворотов и разных типов шрифтов:

  • Встроенные шрифты. Это шрифты, которые зашиты в принтер намертво. Точнее, один шрифт, который зашит в нескольких размерах.
  • Загруженные шрифты. В этом случае шрифт в принтер грузится как картинка bmp, и поэтому можно выбрать только один шрифт и только одного размера. Зато этим шрифтом можно фигачить многострочный текст автоматически (принтер сам будет переносить буквы на новую строку).
  • Шрифты TrueType. Здесь в принтер грузится шрифт целиком, и принтер сам меняет его размер как нам надо. Но многострочный текст в этом случае напечатать будет нельзя, и надо будет переносить его самостоятельно, разбивая всё на строки руками. Зато шрифт можно загрузить один раз и использовать в нужных размерах без заморочек.

Настройки вывода шрифтов и возможность загрузить свои шрифты

В любом случае кнопка “Загрузить шрифт” выводит окно выбора шрифта (я показал для TrueType) и окно выбора, куда этот шифт грузить ( в какую ячейку памяти). Для разных типов шрифтов есть свои ячейки памяти. Для обычных шрифтов они будут обозначаться префиксом “V” (“VA”, “VB”, “VC” и так далее), а для TrueType – “T” (“TA”, “TB”, “TC” и так далее).

Загрузка своих шрифтов в принтер

Ну а после того как шрифт загружен – можно выбрать его для вывода текста. Мне хватило парочки шрифтов Tahoma и Tahoma Bold для всех своих задач.

Вывод текста загруженными шрифтами

По такому же приницпу устроена и загрузка картинок. По возможности картинку лучше заранее перевести в чёрно-белый режим и сохранить в каком-нибудь формате без потери качества (bmp или gif). Картинки в принтере хранятся по текстовым именам, как файлы. Ну и понятно что память принтера под это всё ограничена несколькими мегабайтами, так что особо там не развернуться.

Внимание! GoLabel тяжко переживает перенос принтера на другой компьютер. Я тестировал принтер на втором компьютере и у меня не получилось настроить GoLabel так, чтобы она увидела те объекты, которые уже загружены в принтере. Показать она их смогла, а вот подставить их в списки выбора шрифтов (TA, TB) и рисовать макет этикетки – не смогла. Поэтому мне пришлось на втором компе заново загружать все шрифты только для того, чтобы их увидела GoLabel.

Ну, после мелких тестов, у меня получилась вот такая этикетка.

Тестовый макет этикетки в GoLabel

Нажимаем на печать и получаем её же на выходе из принтера. Только вы видите, что наша этикетка уехала вверх: верхней рамки не видно.

Распечатали тестовую этикетку из GoLabel

Это происходит из-за того, что принтер не всегда точно определяет границу этикеток. Иногда этикетку может перекашивать и по горизонтали, если вы её неровно заправили. Так как мне нравятся рамочки, то я просто делаю отступы со всех краёв побольше, чтобы по краям этикетки оставался запас места.

Вот примерно так выглядит весь процесс создания и подгонки этикетки. Самих этикеток ушло примерно столько же, сколько уходит на одну калибровку принтера.

Процесс подгонки и создания новой этикетки для принтера

И тут надо остановиться и задуматься. Это вот всё красиво. Мы сдизайнили и отладили печать одной этикетки. Теперь мы можем напечатать десяток или сотню её копий и обклеить товар. Но что делать, если надо печатать этикетки с меняющимся текстом (например на разные товары или на модульку для щита)?

А пожалуйста! В GoLabel есть и такая фишка. Она может брать данные из какой-нибудь базы или XLS-таблицы и подставлять их в нужные места. Смысл примерно такой: мы скрамливаем программе файл с данными. Она считывает его и берёт оттуда названия всех полей. А потом позволяет подставлять эти называния полей в нужные места текста. Печатать этикетки можно выборочно, отбирая галочками нужные записи данных.

Для примера у меня валялся файл от одного из щитов. Это обычная таблица Экселя, в которой первые строки содержат названия “полей” данных. У меня в нём только одно поле – маркировка модульки.

XLS-файл источника данных

В GoLabel прямо при редактировании текста на вкладке “Источник данных” можно выбрать опцию “База данных”. И сразу же появится кучка окон, одним из которых будет окно подключения к нужной нам базе данных или файлу.

Подключение из GoLabel к внешнему источнику данных

После этого можно выбрать “таблицу” и “поля” базы. Для XLS это будут названия листов и заголовки столбцов.

Выбор полей источника данных для печати

Эти данные можно отфильровать (вкладка “Запрос”) или отсортировать (вкладка “Сортировка”). А в конце можно посмотреть на то, что получилось.

Считанные данные из XLS-файла

Теперь надо взять наши же текстовые поля (или штрих-коды) и, выбрав базу данных, нажать кнопку “Вставить поле”. Поле можно вставить или вместо текста или прямо в текст. Оно указывается порядковым номером с префиксом “^F”, например “^F00″ – первое поле, “^F01″ – второе и так далее.

Добавление полей из источника данных в этикетку

Если такие поля есть и база данных открыта, то у GoLabel в верхнем меню появляются кнопки перемещения по записям, и можно пролистывать все этикетки, которые получатся при использовании базы данных. А при печати можно выбрать, какие записи из базы печатать: достаточно поставили или поснимать галочки:

Возможность печати нескольких разных этикеток

Вот благодаря этой фишке при помощи GoLabel можно печатать разные переменные данные. Даже в принципе можно накрутить какую-нибудь 1С или обработку, которая подготовит XLS или DBF, и натравить на него GoLabel для печати. Вот это даже будет похоже на автоматизацию. Правда всё равно придётся вручную открывать файлы и тратить на это время.

Попутно замечу ещё вот что. GoLabel шлёт команды на принтер напрямую, и поэтому задания печаи в Windows не формируются: Windows вообще в этот момент не знает, что на принтере печатают.

А теперь – главный гвоздь GoLabel, ради которого всё затевалось. Справа от области, где мы рисуем этикетку, есть небольшая панелька – окно команд. И при помощи кнопок, а конкретно – кнопки “Export” – можно ВСЮ текущую этикетку (и ещё и настройки бумаги, принтера) вытащить в виде тех самых команд принтера на EZPL! Благодаря этому можно нарыть часть команд даже не читая документацию по EZPL. Например команда ^H отвечает за нагрев, а ^S – за скорость печати (их на скриншоте ниже не видно). Все штрих- и QR-коды точно так же кодируются обычным текстом, так что поменять значение кода проблем не составит.

Экспорт команд этикетки на языке EZPL

И так как все эти команды фигачатся открытым обычным текстом, то мы можем это использовать! Например, скопировать их оттуда и создать какой-нибудь шаблон для печати. Всё, что нам надо – создать текстовый файл и разобраться с кодировками. А это может сделать любой-любой скрипт или любой язык программирования.

После этого например 1Ска может сделать вот такой вот файл, в котором содержатся команды принтера. И отправить его на принтер! И принтер будет печатать, причём ему (как я уже писал выше) будет плевать на настройки Windows. И вот это вот – самое крутое!

Файл с тестовыми командами EZPL, сгенерированный из 1C

По поводу кодировок. Можно перевести принтер и все текстовые поля в кодировки UTF8 (как сделано по умолчанию). Но так как у меня 1Ска выдаёт всё в Windows-1251, то я подгрузил в принтер вместе со шрифтами нужные кодовые таблицы (они есть в комплекте GoLabel) и перенастроил принтер и шрифты на Windows-1251.

Первое, что я сделал – ради прикола набил на 1С обработочку, которая умела переключать скорость принтера (той командой “^Sx”) и печатать несколько копий текстовой этикетки.

Тестовая обработка, которая генерирует файл команд из 1C

Ну и побаловался с ней, потратив часть рулона =) Зато получил удовольствие: нажимаешь кнопочку – и принтер сразу печатает!

Тестовые этикетки, распечатанные на EZPL из 1С

Но не всё так просто, как кажется. Дело в том, что просто так отправить команды на принтер получится, если он подключен у вас по RS-232 (COM-порт). Тогда порт можно открыть как файл и высылать туда все данные напрямую. Ну или сделать что-то типа “Copy Commands.txt COM1″ в батничке. А вот как быть с USB или LAN? И я решил эту задачу! Но расскажу я про это в другом посте!

2 Отзывов на “Маркировка: Язык EZPL принтеров GODEX и программа GoLabel”


  • Спасибо, очень полезная статья, для тех, кто сомневается, какой принтер купить.

    Был момент, когда докупал принтеры и взял как раз Годекс. Исплевался и оставил до программиста. Потом принтер сгорел в пожаре и больше я к нему не возвращался.

    Поскольку с принтерами, например, Зебра, идет нормально ПО, в котором можно печатать все, что угодно, без калибровки, монтировки, сноровки и прочей шнуровки.
    Дороже на пять копеек, но любая девочка в офисе разберется.

    Респект за подробный отчет и потраченное время.

  • 2 CS  [Москва / Одинцово]

    Да и тебе за забавную историю спасибо! Я иногда прихожу к выводу, что каждый находит себе что-то по душе. Вот мне Godex по душе пришёлся,а Zebra показалсь попсовой и некрасивой. И я думаю, что у меня по аналогии с твоей историей с ней бы не сложилось.
    А в статье у меня получается как обычно и как везде: я от чего-то пропираюьс, вычленяю из этого общие принципы (как устроено и как работает) и предлагаю действовать по аналогии. Вот!

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.