13. Dezember 2024
SVG-QR-Codes generieren mit Python
Mit diesem Python Skript kannst du aus einer Liste von URLs SVG-QR-Codes erzeugen. Hierzu musst du zunächst 2 Pakete installieren. Öffne das Terminal und führe folgenden Befehl aus:
pip3 install qrcode svgwrite
Anschließend erstellst du eine Datei namens generate.py mit folgendem Inhalt:
import qrcode
import svgwrite
from urllib.parse import urlparse
def generate_filename_from_url(url):
parsed_url = urlparse(url)
path = parsed_url.path.strip('/')
parts = [parsed_url.netloc] + path.split('/')
filename = "qr-" + "-".join(parts).replace('.', '-').replace('_', '-') + ".svg"
return filename
def save_qrcode_svg(data, filename):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
size = len(qr.modules) * 10 # 10 ist die box_size
dwg = svgwrite.Drawing(filename, size=(size, size), profile='tiny')
for row, line in enumerate(qr.modules):
for col, module in enumerate(line):
if module:
dwg.add(dwg.rect(insert=(col * 10, row * 10), size=(10, 10), fill='black'))
dwg.save()
with open('urls.txt', 'r') as file:
urls = file.readlines()
for url in urls:
url = url.strip()
if url:
filename = generate_filename_from_url(url)
save_qrcode_svg(url, filename)
print(f"QR-Code für URL {url} wurde gespeichert als {filename}")
Code-Sprache: PHP (php)
Außerdem erstellst du eine Datei namens urls.txt im gleichen Verzeichnis. Dort trägst du die gewünschten URLS ein – eine pro Zeile.
Jetzt navigierst du im Terminal in das Verzeichnis. Z.B.
cd python/qr-code-generator
… und führst das Python Skript mit folgendem Befehl aus:
python3 generate.py
Code-Sprache: CSS (css)