gateway/demoData/neutralizer/_generateTenantDossierPdf.py
2026-04-13 00:38:47 +02:00

57 lines
1.6 KiB
Python

"""Generate tenant-dossier.pdf for neutralization demo. Run: python _generateTenantDossierPdf.py
Uses ReportLab so the PDF opens reliably in all viewers (stdlib-only PDFs are fragile).
"""
from pathlib import Path
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
def _main():
outPath = Path(__file__).resolve().parent / "tenant-dossier.pdf"
c = canvas.Canvas(str(outPath), pagesize=A4)
_, h = A4
margin = 72
y = h - margin
c.setFont("Helvetica-Bold", 13)
c.drawString(margin, y, "Tenant dossier (demo) - confidential")
y -= 22
c.setFont("Helvetica", 11)
lines = [
"Fictional demo data for neutralization testing.",
"",
"Tenant name: Hans Muster",
"Date of birth: 14.03.1982",
"Nationality: Swiss",
"",
"Residential address:",
"Bahnhofstrasse 1",
"8001 Zurich",
"Switzerland",
"",
"Email: hans.muster@example-mail.demo",
"Phone: +41 79 123 45 67",
"",
"Lease reference: LE-2024-88421",
"Monthly rent: CHF 2450.00",
"Deposit held: CHF 7350.00",
"",
"Employer: Demo Consulting AG, Limmatquai 78, 8001 Zurich",
"",
"Notes: Tenant requested balcony repair (ticket REQ-992).",
]
lineHeight = 14
for line in lines:
if y < margin and line:
c.showPage()
c.setFont("Helvetica", 11)
y = h - margin
c.drawString(margin, y, line)
y -= lineHeight
c.save()
print(f"Wrote {outPath}")
if __name__ == "__main__":
_main()