import os import re import base64 import subprocess import tempfile from pathlib import Path SVG_TEMPLATE = Path("template/Vorlage_LAN_Ausweis.svg") CHROME_PATH = Path(r"C:\Program Files\Google\Chrome\Application\chrome.exe") def get_image_as_base64(image_path: str) -> str: with open(image_path, "rb") as image_file: encoded_bytes = base64.b64encode(image_file.read()) encoded_string = encoded_bytes.decode("utf-8") return f'xlink:href="data:image/jpeg;base64,{encoded_string}"' def get_user_svg_string(username: str, seat: str, user_image: str) -> str: with open(SVG_TEMPLATE, "r", encoding="utf-8") as svg_file: svg_string = svg_file.read() svg_string = svg_string.replace(">test_username", f">{username}") svg_string = svg_string.replace(">Platz: XYZ<", f">Platz: {seat}<") svg_string = svg_string.replace('xlink:href="data:image/jpeg;base64,"', user_image) """ with open("test.svg", "w", encoding="utf-8") as f: f.write(svg_content) """ return svg_string def create_pdf_from_svg(svg_string: str, pdf_path: str): width = re.search(r'width="([^"]+)"', svg_string) height = re.search(r'height="([^"]+)"', svg_string) width = width.group(1) height = height.group(1) html = f"""