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()