From 3f516ed6515c1fd44ed1d9e691e28f1e890029c7 Mon Sep 17 00:00:00 2001 From: dfuhrmann3 Date: Fri, 3 Jul 2026 13:15:25 +0200 Subject: [PATCH] ZUGFeRD fix --- main.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index a5019a6..155262c 100644 --- a/main.py +++ b/main.py @@ -351,7 +351,6 @@ with col1: uploaded_file = st.file_uploader("Wähle eine Rechnungs-PDF", type=["pdf"]) pdf_text = "" if uploaded_file is not None: - # Optimierung: Nutze getvalue(), damit die PDF-Bytes später für ZUGFeRD erhalten bleiben pdf_data = uploaded_file.getvalue() doc = fitz.open(stream=pdf_data, filetype="pdf") for page in doc: @@ -392,7 +391,7 @@ with col2: "WICHTIGE REGEL: Analysiere den Text direkt VOR der ersten Tabellenposition '1'. " "Sortiere alle dort vorlaufenden Zeilen vollständig in die dafür vorgesehenen ID-, Datums- und Freitext-Felder ein. " "Schreibe diese vorlaufenden Metadaten NIEMALS in die Beschreibung der ersten Position hinein!\n\n" - "Antworte ausschließlich mit dem reinen JSON-Objekt. Schreibe keinen anderen Text." + "Antworte ausschließlich with dem reinen JSON-Objekt. Schreibe keinen anderen Text." ) prompt_meta = f"Rechnungstext:\n{pdf_text}" @@ -548,7 +547,7 @@ with col2: with c_vat_ui: st.metric("MwSt-Gesamt (€)", f"{computed_vat_amount:.2f}") with c_gross_ui: st.metric("Brutto-Zahlbetrag (€)", f"{computed_gross_amount:.2f}") - # --- NEU: DYNAMISCHE EXPORT-SEKTION FÜR ZUGFeRD ODER XRECHNUNG --- + # --- EXPORT-SEKTION FÜR ZUGFeRD ODER XRECHNUNG --- st.markdown("---") export_format = st.selectbox( "💾 Export-Format wählen", @@ -584,15 +583,15 @@ with col2: ) else: try: - # ZUGFeRD: Nutzt PyMuPDF, um das XML direkt in die hochgeladene PDF einzubetten + # 🔥 KORREKTUR: Nutzt die echten PyMuPDF-Funktionen 'embfile_add' und 'mime=' original_pdf_bytes = uploaded_file.getvalue() doc = fitz.open(stream=original_pdf_bytes, filetype="pdf") - doc.embedded_file_add( + doc.embfile_add( "factur-x.xml", xml_string.encode("utf-8"), filename="factur-x.xml", desc="Factur-X/ZUGFeRD E-Invoice", - mimetype="text/xml" + mime="text/xml" ) zugferd_pdf_bytes = doc.write() doc.close()