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 |
|---|---|
Profile | Vybere automatickou detekci podle metadat nebo validaci base, engineering či associated-file |
MaxObjects | Ohraničí iterativní průchod object grafem, výchozích 1 000 000 objektů |
MaxIssues | Ohraničí uchovávanou diagnostiku, výchozích 1 024 issues |
MaxDecodedBytes | Ohraničí kumulativní dekódované bajty metadat, ICC a content streamů, výchozích 64 MiB |
MaxContentTokens | Ohraničí kumulativní tokeny content streamů, výchozích 4 000 000 tokenů |
CheckEmbeddedFonts | Zkontroluje renderované fonty na přítomnost vloženého font programu |
CheckAnnotationAppearances | Zkontroluje příznaky anotací a normal appearance streamy |
CheckOptionalContent | Zkontroluje názvy a unikátnost konfigurací optional content |
CheckColourSpaces | Zkontroluje malované device barvy, ICC profily, output intents, výchozí hodnoty, obrázky, shadings, formy a transparency group |
CheckTransparency | Zkontroluje malovanou alpha, soft masky, blend režimy a pokrytí blending prostorem na úrovni stránky |
CheckCompositeFonts | Zkontroluje potomky Type 0, CIDSystemInfo, kompatibilitu CMap a omezení CIDToGIDMap |
CheckMetadataPackets | Zkontroluje 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ě