Преобразование картинки в код ZPL

28.05.21

Разработка - Инструментарий разработчика

Печать графики на языке ZPL. Данная обработка конвертирует картинку в код на языке ZPL для команды ^GF (Graphic Field). Без внешних компонент. Встроен пример печати QR кодов.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
ПреобразованиеКартинкиВКодZPL.epf :
.epf 7,31Mb ver:0.1b
9 4 550 руб. Купить
Процедура EncodeHexAscii.txt :
.txt 2,25Kb
3 4 550 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

При печати QR кодов на разных принтерах этикеток столкнулся с проблемой кодировки. Для одних принтеров для правильного формирования шрифтов требовалось отправлять данные в кодировки ANSI на других аппаратах в UTF8. QR код формировался командами :

^FO314,358^BQR,2,5
^FDMA,[QRКодЦенаКатегория]^FS

На некоторых аппаратах QR код формировался верно, а на других русские буквы в QR коде превращались в иероглифы. Использование смены наборов символов  ^CI28  или ^CI33 , загрузка шрифтов и печать командами :

^A@R,130,40,E:ARIALB.TTF
^FO430,24^FD[НоменклатураНаименование]^FS

решало вопросы только конкретного принтера. Пробовал печатать на Zebra LP2824, GK410, 420, Атол XP323W. Часть принтеров беспроводных, часть "расшаренных" в локальной сети. Печать макетов идет и с компьютеров(Windows) и терминалов сбора данных (тоже разных модификаций) (Android).

В общем решил я сделать "ход конем" - а буду я формировать QR код как картинку и печатать его на этикетках как графику.

Скоро сказка сказывается, да не скоро дело идет.

Изучение команды ^GF (Формат ^GFa,b,c,d,data) привело к очень сложной проблеме : формирование поля "data" по правилам языка ZPL.

1. Как "подготовить" данные для поля "data" ?

2. Смогу ли я средствами платформы 1С получить требуемый формат ASCII hexadecimal data: 00 to FF

3. Полученный ZPL-код будет иметь большой размер. Нужно разобраться как его сжать, иначе отправка на принтер будет занимать более долгое время.

Недельный сбор информации, изучение различных примеров на C++ и Java принесли плоды. И спустя еще неделю было готово сие творение на "чистом" языке 1С, которое я вам предлагаю для ознакомления.

Для новичков предлагаю демо-код этикетки :

^XA
~SD08
^PR2
^CI28

^FO296,8^GB280,504,3^FS
^FO296,8^GB118,320,2^FS

^A@R,130,40,E:ARIALB.TTF
^FO430,24^FD[НоменклатураНаименование]^FS

^A0R,97,110
^FO294,36^FD[НоменклатураКод]^FS

^FO314,358^BQR,2,5
^FDMA,[QRКодЦена любое значение]^FS

^PQ[Количество этикеток]

^XZ

Описание языка ZPL :

https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf

В макете обработки находится компонента печати штрихкодов из БСП, не пугайтесь сильно. Она нужна для формирования картинки QR кода.

Тестировал на платформе 1С:Предприятие 8.3 (8.3.18.1289).

Вступайте в нашу телеграмм-группу Инфостарт

ZPL Zebra Зебра этикетка преобразование hexadecimal ASCII GF QR

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    202040    1114    410    

1021

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    35470    206    104    

195

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    23913    63    26    

92

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    16407    69    39    

88

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    34599    122    53    

165

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    1632    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    107112    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. hrom 69 09.06.21 15:48 Сейчас в теме
Обработку скачал. Спасибо.
А что в файле "Процедура EncodeHexAscii.txt : " ?
2. boss_kuz 106 13.06.21 07:06 Сейчас в теме
(1) Там код для уменьшения(сжатия) полученного поля ^GF.
3. ars 72 13.01.22 12:03 Сейчас в теме
(0) Что то слишком все долго и медленно.
Проще загружать сразу картинку в формате PNG.
^XA

~DYR:TEST1.PNG,P,P,614,,89504E470D0A1A0A0000000D494844520000009E0000004801030000003D­2CDE0A000000017352474200AECE1CE90000000467414D410000B18F0BFC­610500000006504C5445000000FFFFFFA5D99FDD00000009704859730000­0EC400000EC401952B0E1B000001E94944415438CBC5D4318EDB30100550­1B5BA82472025D21371072AB74DC850B95BE520415BC86185E80EA54109C­FC3F435976AC225D7601597E10C5993F922FF2FE57FE3F96E15F713B45AF­E78B7D34CCA72832BE621D64319C09EB8ED33BF6FCF68E901BCEC74DF260­280EFF9270EE807D9C15EF1518452AB19B0CC7D2EBAD4ABF895CAF8633BB­CC4C00F8D9FDF2C4890DE17BF1382C6E515C163930F7CB40CC3F0C37229A­ED89DB8705950D7F2B96CE728EA2981459263159AEC9E99544349BB015B1­D37B72B974C843679546DDBD6110A488AC82D6A991DD9015EE014CC41889­49EE22084142D4DE1743ECC72DC3420C59916B7131BF323A2D2F32400E25­6C9EC96B2599C780935080D5F11AC93FBD8D2E948183D33EB7EFDE26152A­10CBB4F96FA29392B1F640AFF7AFD736742786BCBF7CD84355779CAC4FCD­1FE5BA724195DAE7A7E58F2DEE403910ABB885E2FA84B8382872F0BA3BD6­66D9111D56D6690FB021FBD48071888A565B7B97F4019ECB65D50135746C­24198EFBBB74E729F04B34C71DDD33EA4CECA96E38EF38B208E04D47695D­31F607A2E2A9A1E70C2FC1F0CB7033140BF76698E540AF73C28EC4D5108B­7AC5B43E636D180FB4A088E9058733B49F0ABEC307B61F9CF505AD75596F­479D0FD497E281B1A17BC6D4502BFB1B8733F467C883943FC6CB041C4B8C­880D0000000049454E44AE426082

^FO50,50^IMR:TEST1.PNG^FS
^IDR:TEST1.PNG^FS

^XZ
Показать


Проверить можно здесь.

В 1с как то так

ДвКартинка = Новый ДвоичныеДанные("d:\TEST1.PNG");
ЗПЛ ="^XA
	|~DYR:TEST1.PNG,P,P,"+Формат(ДвКартинка.Размер(),"ЧГ=0")+",,"+ПолучитьHexСтрокуИзДвоичныхДанных(ДвКартинка)+"
	|^FO50,50^IMR:TEST1.PNG^FS
	|^IDR:TEST1.PNG^FS
	|^XZ";

Показать
user1050439; +1 Ответить
4. boss_kuz 106 11.02.22 17:01 Сейчас в теме
(3) Спасибо за ваш вариант. Не знал в силу слабого знания возможностей языка ZPL. Мой код работает на терминалах сбора данных , ни кто не жаловался на скорость. Без спору у вас "элегантное" решение. Попробую.
И пожалуйста поправьте свое сообщение если не хотите получить "бан". Иначе я сообщу модератору.
5. enp2003@list.ru 19.01.23 13:14 Сейчас в теме
(3)

Проверить можно здесь.


+
6. hrom 69 21.06.23 15:35 Сейчас в теме
А никто не занимался конвертацией ТабличногоДокумента в ZPL код?

У нас огромное количество различных видов ценников и все их руками переделывать в шаблоны для ZPL трудозатратно
7. hrom 69 21.06.23 15:37 Сейчас в теме
может быть подскажите какие то конвертеры из PDF в ZPL, которые можно прикрутить к 1С ?
Оставьте свое сообщение