function ValidatePdfVT: TPdfVTValidationResult;
ValidatePdfVT, açık belgeyi ISO 16612-2:2010 tarafından tanımlanan dosya biçimi düzeyi işaretler için tarar:
pdfvtid:GTS_PDFVTVersion (§6.3 Table 2) ve pdfvtid:GTS_PDFVTModDatepdfvtid:GTS_PDFVTModDate ile xmp:ModifyDate arasındaki eşitlik (§6.3 NOTE 1)pdfxid:GTS_PDFXVersion — PDF/VT-1 için PDF/X-4 zorunludur (§6.2.1), PDF/VT-2 ise PDF/X-4p, PDF/X-5g veya PDF/X-5pg dosya kümesi tabanlarından birini kullanmalıdır (§6.2.2)pdfaExtension:schemas tanımı/DPartRoot girdisi: /DPartRootNode, XML NMTOKEN uyumlu /NodeNameList, ebeveyn bağlantıları, /DParts dizi-içinde-dizi yapısı, yaprak /Start//End aralıkları ve sayfa-başına /DPart başvuruları sayfa ağacını depth-first sırada tam bir kez kapsamalıdırGTS_XID, GTS_Scope ve GTS_Env için doğrudan değer türleri ve izin verilen değerler, Record kapsamının kullandığı dolaylı DPartRoot RecordLevel değeri ve Stream kapsamı için yalnızca-PDF/VT-2s sınırı dahilFlateDecode çözülmüş sayfa ya da Form XObject akışları; her Do işleneni, SingleUse sayımlarını, kaynak görünürlüğünü ve Record kapsamı için tek-alıcı sahipliğini zorlamak üzere etkin devralınan kaynaklar üzerinden çözümlenirIntent, karıştırma renk uzayına sahip zorunlu yalıtılmış şeffaflık Group değeri ve doğrudan ya da iç içe Form içeriğindeki optional-content işaretli işleçleri/DestOutputProfile veya harici /DestOutputProfileRef taşıyan bir OutputIntent'e sahip katalog /OutputIntents dizisi/ID dizisi ve /Encrypt yokluğu (PDF/X şifrelemeyi yasaklar)xmp:CreateDate ve xmp:ModifyDate girdileriSonuç bir TPdfVTValidationResult kaydıdır:
pvc1 (PDF/VT-1 işareti), pvc2 (PDF/VT-2 işareti), pvcNone (PDF/VT işareti yok) veya pvcUnknown (işaret mevcut ama dosya düzeyinde sürüm tanınmıyor)TPdfVTValidationIssues kümesipvviGtsScopeInvalidValue, pvviGtsScopeRecordWithoutRecordLevel, pvviGtsXidNotUuid, pvviGtsEnvMissing, pvviGtsXidInvalidType, pvviGtsEnvInvalidType, pvviGtsScopeStreamInVT1, pvviGtsScopeSingleUseRepeated, pvviGtsScopeRecordCrossesRecords ve pvviGtsResourceNotVisible yer alırpvviGtsEncapsulatedInvalidType, pvviGtsEncapsulatedMissingScope, pvviGtsEncapsulatedImageMissingIntent, pvviGtsEncapsulatedGroupInvalid ve pvviGtsEncapsulatedOptionalContent yer alırConformance gerçek bir PDF/VT seviyesi olduğunda ve Issues boş olduğunda True döndürürValidatePdfVT salt okunurdur. Dosya biçimi işaretlerini, seçili DPart ağacı
anlambilimini, yinelenen XObject kapsamını ve kapsüllemeyi, tam PDF/VT-PDF/X tabanı
eşleşmesini ve XMP özelliklerini — öğe olarak mı RDF özniteliği olarak mı yazıldıklarına
bakmaksızın — denetler. Tam içerik düzeyi doğrulama için bir PDF/X preflight motoruyla,
PDF/VT-2 içinse InspectPdfVT2sStream ya da başka bir eksiksiz
dosya kümesi doğrulayıcısıyla birlikte kullanın. PDF/VT-2s, sürümü ISO 16612-2 Annex A'daki
MIME akış başlığıyla bildirilen bir MIME akış uyumluluk seviyesidir; dosya düzeyindeki bir
pdfvtid:GTS_PDFVTVersion değeriyle değil
pvviMissingDPartRoot, katalogda kullanılabilir bir /DPartRoot hiyerarşisi bulunmadığında veya ağaç bozuk /DParts dizileri, /Start ile /DParts karışımı, yinelenen çocuk sahipliği, geçersiz /NodeNameList adları ya da derinlik uyumsuzlukları, sayfa ağacı sırasını izlemeyen sayfa aralıkları, /Start değerini /End olarak yineleyen tek sayfalık aralıklar ya da kapsayan yaprak DPart'ı işaret etmeyen sayfa /DPart bağlantıları gibi §6.5 gereksinimlerini ihlal ettiğinde üretilirFlateDecode akışlarını tarar; başka ya da zincirleme filtreler taşıyan içerik akışları, özel tam-preflight motorları için erişilebilir kalırpvviModDateMismatch yalnızca pdfvtid:GTS_PDFVTModDate ile xmp:ModifyDate ikisi birden mevcutken ve değerleri çeliştiğinde üretilir; SaveAsPdfVT bunları her zaman aynı değerle yazarConformance = pvcUnknown ve boş bir Issues kümesi taşıyan bir kayıt döndürür
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;