function ValidatePdfVT: TPdfVTValidationResult;
ValidatePdfVT przeszukuje otwarty dokument w poszukiwaniu file-format-level markers defined by ISO 16612-2:2010:
pdfvtid:GTS_PDFVTVersion (§6.3 Tabela 2) oraz pdfvtid:GTS_PDFVTModDate.pdfvtid:GTS_PDFVTModDate a xmp:ModifyDate (§6.3 UWAGA 1).pdfxid:GTS_PDFXVersion — PDF/VT-1 musi być PDF/X-4 (§6.2.1), a PDF/VT-2 musi używać jednej z baz zestawu plików PDF/X-4p, PDF/X-5g albo PDF/X-5pg (§6.2.2)pdfaExtension:schemas dla przestrzeni nazw pdfvtid oraz pdfxid./DPartRoot z użytecznym drzewem DPart wg §6.5: /DPartRootNode, zgodne z XML NMTOKEN /NodeNameList, linki nadrzędne, tablica tablic /DParts, zakresy liści /Start//End i odniesienia stron do /DPart muszą pokrywać drzewo stron dokładnie jeden raz w porządku przeszukiwania w głąb (depth-first order)./OutputIntents katalogu z OutputIntent posiadającym /DestOutputProfile (dziedziczone wymaganie PDF/X-4)./ID trailera (stopki) i brak /Encrypt (PDF/X zabrania szyfrowania).xmp:CreateDate i xmp:ModifyDate w XMP dla zgodności Info / XMP.Wynikiem jest rekord TPdfVTValidationResult:
pvc1 (PDF/VT-1 marker), pvc2 (PDF/VT-2 marker), pvcNone (no PDF/VT marker), or pvcUnknown (marker present but file-level version unrecognised).TPdfVTValidationIssues z zerową lub większą liczbą wartości: pvviMissingXmpMetadata, pvviMissingPdfVTIdentifier, pvviMissingExtensionSchema, pvviMissingPdfVTModDate, pvviModDateMismatch, pvviMissingDPartRoot, pvviMissingPdfXIdentifier, pvviMissingOutputIntent, pvviMissingIccProfile, pvviMissingTrailerId, pvviEncryptionPresent, pvviMissingXmpDates.ValidatePdfVT jest tylko do odczytu. Sprawdza znaczniki formatu pliku,
selected DPart tree semantics, exact PDF/VT-to-PDF/X base pairing, and XMP
properties whether they are written as elements or RDF attributes. Pair
it with a PDF/X preflight engine for full content-level verification and,
for PDF/VT-2, a complete file-set validator. PDF/VT-2s is a MIME stream
conformance level whose version is signalled by the MIME stream header in
ISO 16612-2 Annex A, not by a file-level pdfvtid:GTS_PDFVTVersion
value.
pvviMissingDPartRoot jest emitowany, gdy katalog nie ma używalnej hierarchii /DPartRoot albo gdy drzewo narusza wymagania §6.5, takie jak źle uformowane tablice /DParts, mieszanie /Start i /DParts, zdublowana własność dzieci, nieprawidłowe nazwy /NodeNameList lub niedopasowania głębokości, zakresy stron, które nie podążają za kolejnością drzewa stron, zakresy jednostronicowe, które powtarzają /Start jako /End, albo odwołania /DPart strony, które nie wskazują na obejmujący liść DPartpvviModDateMismatch jest emitowany tylko wtedy, gdy zarówno pdfvtid:GTS_PDFVTModDate, jak i xmp:ModifyDate są obecne, a ich wartości się różnią. SaveAsPdfVT zawsze zapisuje je z tą samą wartościąConformance = pvcUnknown i pustym zbiorem Issuesuses System.TypInfo;
var
Outcome: TPdfVTValidationResult;
Issue: TPdfVTValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\statements.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfVT;
Memo1.Lines.Add('Poziom: ' + GetEnumName(TypeInfo(TPdfVTConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfVTValidationIssue), Ord(Issue)));
end;