function ValidatePdfVT: TPdfVTValidationResult;
ValidatePdfVT doorzoekt het open document naar de bestandsformaatmarkeringen op bestandsniveau die zijn gedefinieerd door ISO 16612-2:2010:
pdfvtid:GTS_PDFVTVersion (§6.3 Tabel 2) en pdfvtid:GTS_PDFVTModDate.pdfvtid:GTS_PDFVTModDate en xmp:ModifyDate (§6.3 NOTE 1).pdfxid:GTS_PDFXVersion — PDF/VT-1 moet PDF/X-4 zijn (§6.2.1), terwijl PDF/VT-2 een van de file-set-bases PDF/X-4p, PDF/X-5g of PDF/X-5pg moet gebruiken (§6.2.2)pdfaExtension:schemas beschrijving voor zowel pdfvtid als pdfxid namespaces./DPartRoot-vermelding met een bruikbare §6.5 DPart-boom: de /DPartRootNode, XML NMTOKEN-compatibele /NodeNameList, bovenliggende links, /DParts array-van-arrays, leaf /Start//End-bereiken en /DPart-referenties per pagina moeten de paginaboom exact één keer in depth-first volgorde bestrijken./OutputIntents-array met een OutputIntent die /DestOutputProfile heeft (geërfde PDF/X-4-vereiste)./ID-array en de afwezigheid van /Encrypt (PDF/X verbiedt versleuteling).xmp:CreateDate en xmp:ModifyDate in XMP voor Info / XMP-pariteit.Het resultaat is een TPdfVTValidationResult-record:
pvc1 (PDF/VT-1-markering), pvc2 (PDF/VT-2-markering), pvcNone (geen PDF/VT-markering) of pvcUnknown (markering aanwezig maar bestandsniveauversie niet herkend)TPdfVTValidationIssues-set met nul of meer waarden: pvviMissingXmpMetadata, pvviMissingPdfVTIdentifier, pvviMissingExtensionSchema, pvviMissingPdfVTModDate, pvviModDateMismatch, pvviMissingDPartRoot, pvviMissingPdfXIdentifier, pvviMissingOutputIntent, pvviMissingIccProfile, pvviMissingTrailerId, pvviEncryptionPresent, pvviMissingXmpDatesValidatePdfVT is alleen-lezen. Het controleert de bestandsformaatmarkeringen, geselecteerde DPart-boomsemantiek, de exacte PDF/VT-naar-PDF/X-basiscombinatie en XMP-eigenschappen, ongeacht of ze als elementen of RDF-attributen zijn geschreven. Combineer het met een PDF/X-preflightingengine voor volledige controles op contentniveau en, voor PDF/VT-2, een complete file-set validator. PDF/VT-2s is een MIME-streamconformiteitsniveau waarvan de versie wordt gesignaleerd door de MIME-streamheader in ISO 16612-2 Annex A, niet door een bestandsnivea pdfvtid:GTS_PDFVTVersion-waarde
pvviMissingDPartRoot wordt gemeld wanneer de catalogus geen bruikbare /DPartRoot-hiërarchie heeft of wanneer de boom de vereisten van §6.5 schendt, zoals foutieve /DParts-arrays, gemengde /Start en /DParts, dubbele eigendom van kinderen, ongeldige /NodeNameList-namen of dieptemismatches, paginabereiken die de volgorde van de paginaboom niet volgen, enkelpagina-bereiken die /Start als /End herhalen, of pagina-/DPart-koppelingen die niet naar de dekkende leaf DPart verwijzenpvviModDateMismatch wordt alleen gemeld wanneer zowel pdfvtid:GTS_PDFVTModDate als xmp:ModifyDate aanwezig zijn en hun waarden verschillen. SaveAsPdfVT schrijft ze altijd met dezelfde waardeConformance = pvcUnknown en een lege Issues-set
uses System.TypInfo;
var
Outcome: TPdfVTValidationResult;
Issue: TPdfVTValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\statements.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfVT;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfVTConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfVTValidationIssue), Ord(Issue)));
end;