From 7e7bf9eef568343fcd41eacfd34ec408f783c18d Mon Sep 17 00:00:00 2001 From: L3D Date: Sat, 13 Jan 2024 04:30:29 +0100 Subject: [PATCH] generate labels include qr-code --- README.md | 1 + generate_labels.py | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 09edb9a..1660deb 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,5 @@ python3 -m venv py source py/bin/activate cat generate_labels.py pip install svgwrite +pip install svgwrite qrcode[pil] ``` diff --git a/generate_labels.py b/generate_labels.py index 8ab0ae3..5f9f9b1 100755 --- a/generate_labels.py +++ b/generate_labels.py @@ -1,6 +1,10 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import svgwrite +import pyqrcode + +lost_and_found_content = "Found? https://l3d.ch/kontakt" +asset_content = "000-00X" def create_a4_svg(output_filename): # A4 size in millimeters @@ -16,7 +20,25 @@ def create_a4_svg(output_filename): for x in range(0,3): for y in range(0,10): print(f"Create Label: X={x}, Y={y}") - dwg.add(dwg.rect(insert=(f'{x*70}mm', f'{y*29.7}mm'), size=('70mm', '29.7mm'), fill="red", stroke="none")) + # white bg for label + dwg.add(dwg.rect(insert=(f'{x*70}mm', f'{y*29.7}mm'), size=('70mm', '29.7mm'), fill="white", stroke="none")) + # asset number + asset_element = dwg.text(asset_content, insert=(f'{x*70+29.7}mm', f'{y*29.7+10}mm'), font_size="37px", font_family="Lato", fill="black") + dwg.add(asset_element) + # lost and found + lost_and_found_element = dwg.text(lost_and_found_content, insert=(f'{x*70+29.7}mm', f'{y*29.7+15}mm'), font_size="11.3px", font_family="Lato", fill="black") + dwg.add(lost_and_found_element) + # freitextfeld + dwg.add(dwg.rect(insert=(f'{x*70+29.7+0.5}mm', f'{y*29.7+28.2}mm'), size=('38.3mm', '0.2mm'), fill="grey", stroke="none")) + + # create qr-code + qr = pyqrcode.create(f'https://i.l3d.ch/a/{asset_content}', error="H") + # Save QR code as SVG + qr.svg('/tmp/qr.svg', scale=50) + # import + qr_code_svg = svgwrite.image.Image('/tmp/qr.svg', insert=(f'{x*70}mm', f'{y*29.7}mm'), size=('29.7mm', '29.7mm')) + dwg.add(qr_code_svg) + # Save the SVG document dwg.save()