diff --git a/app.py b/app.py index 1ab4dc2..8f7be33 100644 --- a/app.py +++ b/app.py @@ -249,31 +249,14 @@ def invoice_pdf(): pdf.add_page() left = 15 - col_right = 150 col_w = 45 - # --- Header: Absender links, Logo rechts --- - pdf.set_font("Arial", "B", 11) - pdf.set_xy(left, 15) - pdf.cell(col_w, 5, firmen_name, ln=True) - pdf.set_font("Arial", "", 9) - if firmen_adresse: - pdf.set_x(left) - pdf.cell(col_w, 4, firmen_adresse, ln=True) - contact_parts = [] - if telefon: - contact_parts.append(f"Tel: {telefon}") - if email: - contact_parts.append(f"Mail: {email}") - if contact_parts: - pdf.set_x(left) - pdf.cell(col_w, 4, " | ".join(contact_parts), ln=True) - - # Logo rechts oben (Bild oder Text-Fallback) + # Logo rechts oben logo_name = config.get('logo', '') logo_path = os.path.join('static', logo_name) if logo_name else '' if logo_name and os.path.exists(logo_path): pdf.image(logo_path, x=155, y=8, w=40) + logo_bottom = pdf.get_y() else: pdf.set_font("Arial", "B", 18) pdf.set_xy(150, 15) @@ -282,29 +265,49 @@ def invoice_pdf(): pdf.set_x(150) pdf.cell(col_w, 7, "Design", ln=True, align='R') pdf.set_text_color(0, 0, 0) + logo_bottom = pdf.get_y() - # --- Rechnungsdaten --- - invoice_y = max(pdf.get_y(), 50) - pdf.set_xy(left, invoice_y) + # Firmendaten rechts unter Logo + right_x = 150 + info_y = logo_bottom + 3 + pdf.set_font("Arial", "B", 9) + pdf.set_xy(right_x, info_y) + pdf.cell(col_w, 4, firmen_name, ln=True, align='R') + pdf.set_font("Arial", "", 8) + if firmen_adresse: + pdf.set_x(right_x) + pdf.cell(col_w, 3.5, firmen_adresse, ln=True, align='R') + contact_parts = [] + if telefon: + contact_parts.append(f"Tel: {telefon}") + if email: + contact_parts.append(f"Mail: {email}") + if contact_parts: + pdf.set_x(right_x) + pdf.cell(col_w, 3.5, " | ".join(contact_parts), ln=True, align='R') + right_bottom = pdf.get_y() + + # --- Rechnungsdaten & Empfaenger (links, unterhalb der rechten Spalte) --- + content_y = max(right_bottom + 5, 50) + pdf.set_xy(left, content_y) pdf.set_font("Arial", "", 10) if rechnungsnummer: - pdf.cell(col_w, 5, f"Rechnungsnr.: {rechnungsnummer}", ln=True) + pdf.cell(80, 5, f"Rechnungsnr.: {rechnungsnummer}", ln=True) pdf.set_x(left) - pdf.cell(col_w, 5, f"Datum: {datum}", ln=True) + pdf.cell(80, 5, f"Datum: {datum}", ln=True) - # --- Empfänger --- - pdf.set_xy(left, pdf.get_y() + 10) + pdf.set_xy(left, pdf.get_y() + 8) pdf.set_font("Arial", "B", 10) - pdf.cell(col_w, 5, "Rechnungsempfanger:", ln=True) + pdf.cell(80, 5, "Rechnungsempfanger:", ln=True) pdf.set_font("Arial", "", 10) pdf.set_x(left) - pdf.cell(col_w, 5, kunde, ln=True) + pdf.cell(80, 5, kunde, ln=True) if adresse: pdf.set_x(left) pdf.set_font("Arial", "", 9) for line in adresse.split('\n'): pdf.set_x(left) - pdf.cell(col_w, 4, line.strip(), ln=True) + pdf.cell(80, 4, line.strip(), ln=True) # --- Trennlinie --- pdf.set_draw_color(220, 220, 220)