THotPDF.ValidatePDFA4 Method

Zvaliduje generovaný či načtený object graph proti podporovanému profilu PDF/A-4 base, PDF/A-4e engineering nebo PDF/A-4f associated-file a vrátí stabilní strukturovanou diagnostiku

Deklarace

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Issues: THPDFPDFA4ValidationIssues): boolean; overload;

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Findings: THPDFComplianceFindings): boolean; overload;

Jednotka

HPDFDoc

Typy profilů a závažnosti

THPDFPDFA4Profile = (
  p4pAutomatic,
  p4pBase,
  p4pEngineering,
  p4pAssociatedFiles
);

THPDFPDFA4IssueSeverity = (
  p4isWarning,
  p4isError
);

THPDFPDFA4Profile vybere odvození z metadat nebo explicitní conformance profil a THPDFPDFA4IssueSeverity rozliší advisory diagnostiku od validačních chyb

Volby

PoleÚčel
ProfileVybere automatickou detekci podle metadat nebo validaci base, engineering či associated-file
MaxObjectsOhraničí iterativní průchod object grafem, výchozích 1 000 000 objektů
MaxIssuesOhraničí uchovávanou diagnostiku, výchozích 1 024 issues
MaxDecodedBytesOhraničí kumulativní dekódované bajty metadat, ICC a content streamů, výchozích 64 MiB
MaxContentTokensOhraničí kumulativní tokeny content streamů, výchozích 4 000 000 tokenů
CheckEmbeddedFontsZkontroluje renderované fonty na přítomnost vloženého font programu
CheckAnnotationAppearancesZkontroluje příznaky anotací a normal appearance streamy
CheckOptionalContentZkontroluje názvy a unikátnost konfigurací optional content
CheckColourSpacesZkontroluje malované device barvy, ICC profily, output intents, výchozí hodnoty, obrázky, shadings, formy a transparency group
CheckTransparencyZkontroluje malovanou alpha, soft masky, blend režimy a pokrytí blending prostorem na úrovni stránky
CheckCompositeFontsZkontroluje potomky Type 0, CIDSystemInfo, kompatibilitu CMap a omezení CIDToGIDMap
CheckMetadataPacketsZkontroluje každý metadata stream na omezení UTF-8, packet headeru, RDF obálky a PDF/A identifikace

Diagnostika

Každá THPDFPDFA4ValidationIssue hlásí závažnost, stabilní namespaced kód, příslušnou klauzuli ISO 19005-4, object path, číslo objektu, index stránky od nuly, pokud je známý, a čitelnou zprávu

Overload s THPDFComplianceFindings vystaví tentýž průchod přes shared machine-readable model nálezů s profilem PDF/A-4 a repair stavem crsNotAttempted

Validátor pokrývá PDF 2.0 identifikaci, trailer ID a stav šifrování, každý metadata packet, omezení Info, hlavičky ICC a počty kanálů, output intents dokumentu a stránek, malované device barvy, zděděný graphics state napříč poli content streamů a vnořenými Form XObjecty, image masky, shadings, transparency, embedding renderovaných fontů, vztahy composite fontů, anotace a appearance, omezení AcroForm, akce a additional actions, associated files, optional content, externí reference i profilová pravidla pro 3D či přílohy

Nálezy barev a transparency vycházejí z paint operátorů, ne jen z operátorů nastavujících barvu; tokenizace obsahu a reuse dekódovaných streamů se cachují, zatímco každé vyvolání pořád vyhodnocuje zděděný graphics state pro vlastní kontext stránky či Formu

Limity dekódovaných bajtů, obsahových tokenů, objektů i uchovávaných issues selhávají uzavřeně se stabilními nálezy pdfa4.validation.* dřív, než může pokračovat neomezená práce

Příklad

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;

Chování generování

EndDoc automaticky spustí validátor pro '4', '4E' a '4F' a před serializací vyhodí chybu, když nějaká zůstává

Generování PDF/A-4 vynechá trailer položku Info, PDF/A-4f vždy vytvoří požadovaný name tree EmbeddedFiles a anotace příloh souborů přijímá jen PDF/A-4f, kde se vložený stream, Filespec, AF relationship, pole AF v Catalogu i name tree vysílají společně

Související API