Задать вопрос
@denism300

Как сформировать изображение GS1 DataMatrix с функциональными знаками?

Есть массив кодов в текстовом варианте, необходимо сформировать графическое изображение. Проблема заключается в том, что никак не получается корректно вставить функциональный знак FNC1.
Как указано тут: https://www.cleverence.ru/support/77127/ функциональный знак FNC1 - это байт со значением 232.
Попробовал сделать добавление байта так:
for code in codes:
    code_bytes = bytes(code, "utf-8")

    # Если первый байт не FNC1 (0xE8), добавляем
    if not code_bytes.startswith(b"\xE8"):
        code_bytes = b"\xE8" + code_bytes

    encoded = encode(code_bytes)
    img = Image.frombytes("RGB", (encoded.width, encoded.height), encoded.pixels)

    buf = BytesIO()
    img.save(buf, format="PNG")
    buf.seek(0)
    img_reader = ImageReader(buf)

    img_w = page_width - 2 * margin_mm
    img_h = page_height - 2 * margin_mm
    c.drawImage(img_reader, margin_mm, margin_mm, width=img_w, height=img_h)
    c.showPage()


Используемые библиотеки
import json
from tkinter import Tk, Label, Entry, Button, filedialog, messagebox
from pylibdmtx.pylibdmtx import encode
from PIL import Image
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import mm
from reportlab.lib.utils import ImageReader
from io import BytesIO
from os.path import basename, splitext


Коды в таком формате:
"0104603757310758215!&QFA\u001D93gqwy",
"0104603757310758215!aa-\"\u001D93Y2wD",
"0104603757310758215!bUoo\u001D93isPA",
.......


Но при сканировании в коде первым символом идет не FNC1, а è
Поиск по интернету ничего не дал
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы