ZUGFeRD fix

This commit is contained in:
dfuhrmann3 2026-07-03 13:15:25 +02:00
parent 068e6627d9
commit 3f516ed651
1 changed files with 5 additions and 6 deletions

11
main.py
View File

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