Вопрос или проблема
Это требование относится к интеграции Appian с принтером Zebra. Я пытаюсь использовать плагин Appian для печати QR-кодов/Штрих-кодов на принтере Zebra. Один из входных параметров для принтера – это labelString, который упоминается как последовательность команд ZBL, преобразованных в байтовую строку. Я ищу информацию в интернете о том, как преобразовать команды ZPL в байтовую строку, но пока безуспешно.
Это команда, которую я хочу преобразовать в байтовую строку.
^XA
^FO40,30^A0,40^FD${partId}^FS
^FO50,80^BY3^BCN,60,,,,A^FD${partId}^FS
^XZ
Вместо байтовой строки возможно ли отправлять команды ZPL в текстовом формате?
Ответ или решение
Конвертация ZPL-команд в байтовую строку для печати QR-кодов на принтерах Zebra является важным аспектом при интеграции с приложением, таким как Appian. Процесс требует тщательного подхода, особенно когда необходимо удостовериться, что команды ZPL распознаются и обрабатываются правильно при их передаче на принтер.
Понимание ZPL
ZPL (Zebra Programming Language) — это язык программирования, используемый принтерами Zebra для создания и управления этикетками. Команды ZPL представляют собой текстовые строки, которые содержат инструкции по форматированию и печати графиков, текста и штрих-кодов. Ваша задача — преобразовать данные команды в байтовый строковый формат, который может быть передан принтеру.
Пример команд ZPL
Для начала рассмотрим ваши ZPL-команды. Они представляют собой последовательность, которая начинается с ^XA
и заканчивается ^XZ
, а между ними находятся команды форматирования и содержимого для печати:
^XA
^FO40,30^A0,40^FD${partId}^FS
^FO50,80^BY3^BCN,60,,,,A^FD${partId}^FS
^XZ
Преобразование ZPL в байтовую строку
Задача конвертации ZPL-команд в байтовую строку заключается в том, чтобы обеспечить правильное преобразование символов в формат, принимаемый принтером. Это можно сделать с использованием стандартной программы на Python или другом языке программирования. Вот пример реализации на Python:
def zpl_to_bytes(zpl_string):
return zpl_string.encode('utf-8')
zpl_commands = """^XA
^FO40,30^A0,40^FD${partId}^FS
^FO50,80^BY3^BCN,60,,,,A^FD${partId}^FS
^XZ"""
byte_string = zpl_to_bytes(zpl_commands)
print(byte_string)
Объяснение кода:
-
Функция
zpl_to_bytes
: Эта функция принимает строку ZPL и использует методencode
для преобразования строки в байтовый формат с кодировкой UTF-8. -
Строка
zpl_commands
: Здесь вы определяете фактические команды ZPL, которые хотите отправить на принтер. -
Переменная
byte_string
: Хранит результат преобразования.
Этот код обеспечивает получение ZPL-команд в виде байтовой строки, которую затем можно передать в вашу систему печати.
Передача ZPL-команд как текст
Отвечая на ваш второй вопрос, можно также передавать команды ZPL в текстовом формате. Однако, это зависит от API, с которым вы работаете. Если система поддерживает прямую передачу текстовых строк, и принтер настроен на обработку текстовых данных, это может сработать. Тем не менее, наилучшей практикой остается использование байтовых строк для обеспечения корректной передачи данных.
Заключение
Существует несколько методов конвертации ZPL-команд в байтовую строку, и использование языков программирования, таких как Python, значительно упрощает эту задачу. Применяя приведенные выше советы, вы сможете эффективно интегрировать печать QR-кодов и штрих-кодов в своем приложении на базе Appian. Убедитесь, что ваша система правильно настроена для работы с байтовыми строками, что обеспечит стабильную и бесперебойную печать.