THotPDF.ValidatePDFA4-Methode
Validiert einen erzeugten oder geladenen Objektgraphen gegen das unterstützte PDF/A-4-Basis-, PDF/A-4e-Engineering- oder PDF/A-4f-Associated-File-Profil und liefert stabile strukturierte Diagnostik
Deklaration
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Findings: THPDFComplianceFindings): boolean; overload;
Einheit
HPDFDoc
Profil- und Schweregradtypen
THPDFPDFA4Profile = (
p4pAutomatic,
p4pBase,
p4pEngineering,
p4pAssociatedFiles
);
THPDFPDFA4IssueSeverity = (
p4isWarning,
p4isError
);
THPDFPDFA4Profile wählt Metadaten-Inferenz oder ein explizites Konformitätsprofil, während THPDFPDFA4IssueSeverity hinweisende Diagnostik von Validierungsfehlern unterscheidet
Optionen
| Feld | Zweck |
|---|---|
Profile | Wählt automatische metadatenbasierte Erkennung, Basis-, Engineering- oder Associated-File-Validierung |
MaxObjects | Begrenzt die iterative Objektgraph-Traversierung, standardmäßig 1.000.000 Objekte |
MaxIssues | Begrenzt vorgehaltene Diagnostik, standardmäßig 1.024 Issues |
MaxDecodedBytes | Begrenzt kumulative dekodierte Metadaten-, ICC- und Content-Stream-Bytes, standardmäßig 64 MiB |
MaxContentTokens | Begrenzt kumulative Content-Stream-Tokens, standardmäßig 4.000.000 Tokens |
CheckEmbeddedFonts | Prüft Renderfonts auf ein eingebettetes Font-Programm |
CheckAnnotationAppearances | Prüft Annotations-Flags und normale Appearance-Streams |
CheckOptionalContent | Prüft Optional-Content-Konfigurationsnamen und deren Eindeutigkeit |
CheckColourSpaces | Prüft gesetzte Gerätefarben, ICC-Profile, Output Intents, Standardwerte, Bilder, Shadings, Formen und Transparency Groups |
CheckTransparency | Prüft gesetztes Alpha, Soft-Masks, Blend-Modes und die Blending-Space-Abdeckung auf Seitenebene |
CheckCompositeFonts | Prüft Type-0-Descendants, CIDSystemInfo, CMap-Kompatibilität und CIDToGIDMap-Einschränkungen |
CheckMetadataPackets | Prüft jeden Metadaten-Stream auf UTF-8-, Packet-Header-, RDF-Envelope- und PDF/A-Identifikations-Einschränkungen |
Diagnostik
Jedes THPDFPDFA4ValidationIssue meldet Schweregrad, einen stabilen namespaced Code, die einschlägige ISO-19005-4-Klausel, Objektpfad, Objektnummer, nullbasierten Seitenindex, sofern bekannt, und eine menschenlesbare Meldung
Der THPDFComplianceFindings-Overload legt dieselbe Traversierung über das gemeinsame maschinenlesbare Finding-Modell mit dem Profil PDF/A-4 und dem Repair-Status crsNotAttempted offen
Der Validator deckt PDF-2.0-Identifikation, Trailer-ID und Verschlüsselungszustand, jedes Metadaten-Paket, Info-Einschränkungen, ICC-Header und Kanalanzahlen, Dokument- und Seiten-Output-Intents, gesetzte Gerätefarben, geerbten Grafikzustand über Content-Stream-Arrays und verschachtelte Form XObjects hinweg, Image-Masks, Shadings, Transparenz, eingebettete Renderfonts, Composite-Font-Beziehungen, Annotationen und Appearances, AcroForm-Einschränkungen, Actions und Additional Actions, Associated Files, Optional Content, externe Referenzen und profilspezifische 3D- oder Anhangsregeln ab
Farb- und Transparenz-Findings basieren auf Paint-Operatoren statt allein auf farbsetzenden Operatoren; Content-Tokenisierung und Wiederverwendung dekodierter Streams werden gecacht, während jeder Aufruf den geerbten Grafikzustand für seinen eigenen Seiten- oder Form-Kontext auswertet
Dekodierte-Byte-, Content-Token-, Objekt- und zurückbehaltene-Issue-Limits schlagen kontrolliert fehl, mit stabilen pdfa4.validation.*-Findings, bevor unbegrenzte Arbeit fortgesetzt werden kann
Beispiel
var
Options: THPDFPDFA4ValidationOptions;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4ValidationOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.ValidatePDFA4(Options, Issues) then
raise Exception.CreateFmt('%s at %s',
[String(Issues[0].Code), String(Issues[0].Path)]);
end;
Generierungsverhalten
EndDoc führt den Validator automatisch für '4', '4E' und '4F' aus und löst vor der Serialisierung eine Exception aus, wenn ein Fehler verbleibt
Die PDF/A-4-Generierung lässt den Trailer-Info-Eintrag weg, PDF/A-4f erzeugt stets den erforderlichen EmbeddedFiles-Name-Tree, und Dateianhang-Annotationen werden nur von PDF/A-4f akzeptiert, wo der eingebettete Stream, die Filespec, die AF-Beziehung, das Catalog-AF-Array und der Name-Tree gemeinsam ausgegeben werden