function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE обходить відкритий документ у пошуку маркерів файлового формату PDF/E-1, визначених ISO 24517-1:2008:
pdfe:ISO_PDFEVersion (§5 + §13.3)pdfaExtension:schemas для простору імен pdfe (вимога extension-schema зі XMP Specification 2004, успадкована через §13.1)/ISO_PDFEVersion у Document Information Dictionary зі значенням literal-string (§5 SHALL)/ID у trailer (§6.2)xmp:CreateDate і xmp:ModifyDate в XMP (успадковані з ISO 19005-1 §6.7 через §13.1)Результатом є запис TPdfEValidationResult:
pec1 (ідентифікатор PDF/E-1 знайдено і він непорожній), pecNone (маркера PDF/E немає) або pecUnknown (parse не вдався або маркер наявний, але значення відсутнє)TPdfEValidationIssues, що містить нуль або більше значень: pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDatesConformance є справжнім рівнем PDF/E, а Issues порожнійValidatePdfE — read-only інспекція — вона не модифікує
документ і безпечна для повторних викликів. Застосовуйте її, перш ніж
відправляти PDF/E-вміст в інженерний архів, щоб виявити
невідповідності файлового формату, які ця бібліотека здатна виявити. Для
поширеного запиту «чи це PDF/E-1?», що не потребує списку проблем,
надайте перевагу легшій властивості PdfEConformance
pveiInfoVersionMismatch лише коли обидва Info /ISO_PDFEVersion і XMP pdfe:ISO_PDFEVersion наявні та розходяться. Коли запис Info відсутній, валідатор звітує лише pveiMissingInfoVersionEntry (без хибного mismatch)Conformance = pecUnknown і порожнім набором Issues
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;