pdfa_validation_failed
HTTP 422 · code: "pdfa_validation_failed" · type: https://docs.formfeed.dev/errors/pdfa-validation-failed
Der Validator hat die umgewandelte Datei beurteilt und festgestellt, dass sie Regeln von PDF/A verletzt. Es ist der Fehler zweier Arten von Rendering:
- eines Renderings mit
pdf.pdfa, das ein PDF/A-2b oder PDF/A-3b verlangt hat; - einer E-Rechnung, die ein PDF/A-3b ist, das die Rechnung als XML trägt.
Das Rendering ist failed; es wird keine Datei gespeichert, kein gewöhnliches PDF stattdessen ausgeliefert, und ein fehlgeschlagenes Rendering kostet nichts.
Das Problem trägt den Bericht des Validators:
pdfabei einem Rendering mitpdf.pdfa. Seinemessagesnennen die Klausel von PDF/A (rule) und das Objekt des PDFs (location). Eine E-Rechnung, diepdf.pdfagesetzt hat, trägt ihn nebeneinvoice. Das fehlgeschlagene Rendering behält denselben Bericht.einvoicebei einer E-Rechnung. Seinevalidation.messagesmit"part": "pdf"nennen die Klausel von PDF/A und das Objekt des PDFs.
Beispiel
Ein Rendering mit "pdf": { "pdfa": "3b" }:
{
"type": "https://docs.formfeed.dev/errors/pdfa-validation-failed",
"title": "PDF/A validation failed",
"status": 422,
"detail": "The PDF could not be made a valid PDF/A-3b: 1 finding",
"code": "pdfa_validation_failed",
"location": null,
"render_id": "rnd_7da09ab6cd9946b798c187c2a9350852",
"pdfa": {
"standard": "PDF/A-3b",
"conformant": false,
"validator": "veraPDF 1.30.2",
"id": "90614253-7e8d-4f90-b1a2-3d4e5f607182",
"versions": { "verapdf": "1.30.2", "pdfbox": "3.0.8" },
"pdf_sha256": null,
"messages": [
{
"severity": "error",
"rule": "6.2.11.4.1-1",
"message": "…",
"location": "…"
}
]
},
"request_id": "req_4b7c1e9a2f3d4c5b8a6e7f9012"
}
Eine E-Rechnung trägt denselben Befund in einvoice:
{
"type": "https://docs.formfeed.dev/errors/pdfa-validation-failed",
"title": "PDF/A validation failed",
"status": 422,
"detail": "The PDF could not be made a valid PDF/A-3b: 1 finding",
"code": "pdfa_validation_failed",
"location": null,
"render_id": "rnd_7da09ab6cd9946b798c187c2a9350852",
"einvoice": {
"profile": "en16931",
"flavour": "factur-x",
"spec_version": "1.09",
"xml_url": null,
"validation": {
"valid": false,
"schematron": "Factur-X 1.09.2 (Mustang 2.26.0)",
"pdfa": "PDF/A-3b",
"messages": [
{
"part": "pdf",
"severity": "error",
"rule": "6.2.11.4.1-1",
"message": "…",
"location": "…"
}
]
},
"display": null
},
"request_id": "req_4b7c1e9a2f3d4c5b8a6e7f9012"
}
Häufige Ursachen
- Eine Schrift, die nicht eingebettet ist (
6.2.11.4.1-1). PDF/A braucht jede Schrift in der Datei. Ein PDF aus der Dateibibliothek, das mitpost.merge_afterangehängt wird, kann eine solche Schrift mitbringen. - Eine Schrift, deren eingebettetes Programm den Breiten widerspricht, die das PDF nennt (
6.2.11.5-1). Der Office-Konverter schreibt eine solche Schrift für OpenType-Schriften mit CFF-Konturen; bei uns ist das die Schrift für chinesischen, japanischen und koreanischen Text in einer Word- oder PowerPoint-Vorlage. - Mit
"pdfa": "2b": eine an das Dokument angehängte Datei, die selbst kein PDF/A ist (6.8-5). PDF/A-2 nimmt keinen anderen Anhang an; PDF/A-3 nimmt jeden.
So beheben Sie es
- Lesen Sie
pdfa.messages, bei einer E-Rechnungeinvoice.validation.messages: Dort steht, welche Klausel von PDF/A die Datei verletzt und wo. Was scheitert und warum erklärt jede Regel. - Bei einer nicht eingebetteten Schrift in einem angehängten PDF: Erzeugen Sie dieses PDF neu mit eingebetteten Schriften, oder lassen Sie es aus dem PDF/A heraus.
- Bei chinesischem, japanischem oder koreanischem Text in einer Word- oder PowerPoint-Vorlage: Rendern Sie ihn aus einer HTML-Vorlage.
- Bei einem Anhang mit
"2b": Verlangen Sie"3b". - In jedem anderen Fall senden Sie die
render_idan support@formfeed.dev. Ein Dokument, das Formfeed gerendert hat und nicht umwandeln kann, ist unsere Sache.
Wiederholen?
Nein. Dasselbe Dokument schlägt auf dieselbe Weise fehl, und auch asynchrone Renderings werden bei diesem Code nicht wiederholt. Ändern Sie, was der Bericht nennt, und senden Sie die Anfrage mit einem neuen Idempotency-Key oder ohne: Wie bei jeder 4xx liefert der alte Schlüssel 24 Stunden lang wieder diese Antwort.