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

28.05.21

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

При печати 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С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

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

24900 руб.

20.08.2024    73976    377    170    

322

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

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

16500 руб.

02.09.2020    266229    1483    421    

1177

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    61978    127    36    

136

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

22570 руб.

06.10.2023    39692    111    48    

125

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    8000    33    45    

49

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

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

17000 руб.

10.11.2023    26183    97    46    

104

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    4603    16    1    

20

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2415    6    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. hrom 69 09.06.21 15:48 Сейчас в теме
Обработку скачал. Спасибо.
А что в файле "Процедура EncodeHexAscii.txt : " ?
2. boss_kuz 107 13.06.21 07:06 Сейчас в теме
(1) Там код для уменьшения(сжатия) полученного поля ^GF.
3. ars 73 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 107 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С ?
Для отправки сообщения требуется регистрация/авторизация