fix(core): Improve PDF XML extraction, embedding, and format detection; update loadPdf/exportPdf error handling; add new validator implementations and enhance IPdf metadata.

This commit is contained in:
2025-04-04 12:14:41 +00:00
parent 68fd50fd4c
commit 5d43c1ce4e
15 changed files with 1957 additions and 418 deletions

View File

@ -1,7 +1,7 @@
{
"cii": {
"success": 27,
"fail": 0,
"success": 23,
"fail": 4,
"details": [
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/CII/EN16931_1_Teilrechnung.cii.xml",
@ -137,27 +137,27 @@
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/CII/XRECHNUNG_Betriebskostenabrechnung.cii.xml",
"success": true,
"format": "cii",
"error": null
"success": false,
"format": "xrechnung",
"error": "Wrong format detected: xrechnung, expected: cii"
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/CII/XRECHNUNG_Einfach.cii.xml",
"success": true,
"format": "cii",
"error": null
"success": false,
"format": "xrechnung",
"error": "Wrong format detected: xrechnung, expected: cii"
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/CII/XRECHNUNG_Elektron.cii.xml",
"success": true,
"format": "cii",
"error": null
"success": false,
"format": "xrechnung",
"error": "Wrong format detected: xrechnung, expected: cii"
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/CII/XRECHNUNG_Reisekostenabrechnung.cii.xml",
"success": true,
"format": "cii",
"error": null
"success": false,
"format": "xrechnung",
"error": "Wrong format detected: xrechnung, expected: cii"
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/CII/not_validating_full_invoice_based_onTest_EeISI_300_CENfullmodel.cii.xml",
@ -174,133 +174,133 @@
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_1_Teilrechnung.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_2_Teilrechnung.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_AbweichenderZahlungsempf.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Betriebskostenabrechnung.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Einfach.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Einfach_DueDate.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Einfach_negativePaymentDue.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Elektron.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_ElektronischeAdresse.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Gutschrift.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Haftpflichtversicherung_Versicherungssteuer.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Innergemeinschaftliche_Lieferungen.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Kraftfahrversicherung_Bruttopreise.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Miete.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_OEPNV.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Physiotherapeut.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Rabatte.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_RechnungsUebertragung.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Rechnungskorrektur.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Reisekostenabrechnung.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_SEPA_Prenotification.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/EN16931_Sachversicherung_berechneter_Steuersatz.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
@ -330,13 +330,13 @@
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/not_validating_full_invoice_based_onTest_EeISI_300_CENfullmodel.ubl.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
},
{
"file": "/mnt/data/lossless/fin.cx/xinvoice/test/assets/corpus/XML-Rechnung/UBL/ubl-tc434-creditnote1.xml",
"success": true,
"format": "xrechnung",
"format": "ubl",
"error": null
}
]
@ -346,5 +346,5 @@
"fail": 0,
"details": []
},
"totalSuccessRate": 1
"totalSuccessRate": 0.9272727272727272
}