InventoryLabelCreator/main.py
David Rodenkirchen 3fcfefeb15 Fix
2024-12-03 19:56:34 +01:00

43 lines
1.2 KiB
Python

from pathlib import Path
import qrcode
from PIL import Image, ImageDraw, ImageFont
COLOR = (1, 135, 134)
FONT_LINK = ImageFont.truetype("joystix.otf", size=22)
FONT_ID = ImageFont.truetype("joystix.otf", size=28)
FONT_TEXT = ImageFont.truetype("joystix.otf", size=40)
ID_PREFIX = "EZ-ID:"
OUT_DIR = Path("./output")
num_label_start = int(input("Start ID: "))
num_label_end = int(input("End ID: "))
for num in range(num_label_start, num_label_end + 1):
num_as_string = f"{num:06}"
label_id = f"{ID_PREFIX}{num_as_string}"
print(f"Generating label \"{label_id}\"")
label = Image.new("RGB", (800, 350), (255, 255, 255))
logo = Image.open("ezgg_logo.png")
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L
)
qr.add_data(label_id)
qr.make(fit=True)
qr_img = qr.make_image(fill_color=COLOR, back_color="white")
label.paste(im=qr_img.get_image(), box=(0, 10))
label.paste(logo, (290, 120))
draw = ImageDraw.Draw(label)
draw.text((15, 285), label_id, font=FONT_ID, fill=COLOR)
draw.text((320, 38), "Eigentum der", font=FONT_TEXT, fill=COLOR)
draw.text((570, 300), "ezgg-ev.de", font=FONT_LINK, fill=COLOR)
label.save(OUT_DIR / f"{num_as_string}.png")