function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE 會掃描開啟中的文件,尋找 ISO 24517-1:2008 定義的 PDF/E-1 檔案格式標記
pdfe:ISO_PDFEVersion 的 XMP 中繼資料串流(§5 + §13.3)pdfaExtension:schemas 說明(承接自 XMP Specification 2004 的 extension-schema 要求,經由 §13.1 延伸)/ISO_PDFEVersion 的 Document Information Dictionary 項目(§5 SHALL)/ID 陣列(§6.2)xmp:CreateDate 與 xmp:ModifyDate 項目(經由 §13.1 承接自 ISO 19005-1 §6.7)回傳的結果會是 TPdfEValidationResult record
pec1(找到 PDF/E-1 identifier 且非空)、pecNone(沒有 PDF/E marker),或 pecUnknown(parse 失敗,或 marker 有了但值缺失)TPdfEValidationIssues set,可能包含下列值中的一個或多個:pveiMissingXmpMetadata、pveiMissingPdfEIdentifier、pveiMissingExtensionSchema、pveiMissingInfoVersionEntry、pveiInfoVersionMismatch、pveiMissingTrailerId、pveiMissingXmpDatesValidatePdfE 是唯讀檢查,不會修改文件,也可以重複呼叫,建議在把 PDF/E payload 送進 engineering archive 前先跑一次,好把這個 library 能抓到的 file-format 層級 non-conformance 提前顯示給操作人員,若只是要確認「這是不是 PDF/E-1」而不需要 issue list,請改用較輕量的 PdfEConformance 屬性
pveiInfoVersionMismatch,如果 Info 項目根本不存在,只會回報 pveiMissingInfoVersionEntry,不會多出誤判的 mismatchConformance = pecUnknown 且 Issues 是空集合的 record
uses System.TypInfo;
var
Outcome: TPdfEValidationResult;
Issue: TPdfEValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\drawing.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfE;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfEConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfEValidationIssue), Ord(Issue)));
end;