Как рисовать изображения на этикетках - PullRequest
0 голосов
/ 22 апреля 2019

В настоящее время я пытаюсь нарисовать qr-коды на своих ярлыках (библиотека pylabels). Я могу создавать изображения кода QR, используя библиотеку qrcode. Однако я немного растерялся из-за того, как на самом деле рисую изображения на этикетках.

Я использовал пример кода из https://github.com/bcbnz/pylabels/blob/1.2.1/demos/basic.py

Я пытался использовать все методы, предлагаемые формами. Рисование, но безуспешно.

Я просмотрел документацию reportlab, но не совсем понял, как заставить ее работать.

def draw_label(label, width, height, obj):
    # Just convert the object to a string and print this at the bottom left of
    # the label.

    config = obj.get('config')

    label.add(shapes.String(2, 2, f'{config.get("code")}', fontName="Helvetica", fontSize=10))

    label.add(shapes.Drawing.drawOn(label, obj.get('image'), 100, 100))



def create_labels():
    specs = labels.Specification(210, 297, 4, 5, 45, 45, corner_radius=1)
    sheet = labels.Sheet(specs, draw_label, border=True)

    for num in range(10000, 10020):
        setup_dict = {
            'setup': 'setup-config',
            'code': num,
        }

        qr = qrcode.QRCode(
            version=1,
            error_correction=qrcode.constants.ERROR_CORRECT_H,
            box_size=15,
            border=5,
        )

        # Add JSON encoded data to qr code
        qr.add_data(json.dumps(setup_dict))
        qr.make(fit=True)

        qr_code = {
            'config': setup_dict,
            'image': qr.make_image(fill_color="black", back_color="white"),
        }

        sheet.add_label(qr_code)

        sheet.save('/qr_codes.pdf')

Был бы очень признателен, если бы кто-нибудь мог привести мне пример.

1 Ответ

0 голосов
/ 23 апреля 2019

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

from reportlab.graphics.shapes import Image

label.add(Image(25, 42, 80, 80, obj.get('image')))
...