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

FeldZweck
ProfileWählt automatische metadatenbasierte Erkennung, Basis-, Engineering- oder Associated-File-Validierung
MaxObjectsBegrenzt die iterative Objektgraph-Traversierung, standardmäßig 1.000.000 Objekte
MaxIssuesBegrenzt vorgehaltene Diagnostik, standardmäßig 1.024 Issues
MaxDecodedBytesBegrenzt kumulative dekodierte Metadaten-, ICC- und Content-Stream-Bytes, standardmäßig 64 MiB
MaxContentTokensBegrenzt kumulative Content-Stream-Tokens, standardmäßig 4.000.000 Tokens
CheckEmbeddedFontsPrüft Renderfonts auf ein eingebettetes Font-Programm
CheckAnnotationAppearancesPrüft Annotations-Flags und normale Appearance-Streams
CheckOptionalContentPrüft Optional-Content-Konfigurationsnamen und deren Eindeutigkeit
CheckColourSpacesPrüft gesetzte Gerätefarben, ICC-Profile, Output Intents, Standardwerte, Bilder, Shadings, Formen und Transparency Groups
CheckTransparencyPrüft gesetztes Alpha, Soft-Masks, Blend-Modes und die Blending-Space-Abdeckung auf Seitenebene
CheckCompositeFontsPrüft Type-0-Descendants, CIDSystemInfo, CMap-Kompatibilität und CIDToGIDMap-Einschränkungen
CheckMetadataPacketsPrü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

Verwandte APIs