function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE walks the open document looking for the PDF/E-1 file-format markers defined by ISO 24517-1:2008:
pdfe:ISO_PDFEVersion (§5 + §13.3).pdfaExtension:schemas description for the pdfe namespace (XMP Specification 2004 extension-schema requirement, inherited via §13.1)./ISO_PDFEVersion with a literal-string value (§5 SHALL)./ID array (§6.2).xmp:CreateDate and xmp:ModifyDate entries in XMP (inherited from ISO 19005-1 §6.7 via §13.1).The result is a TPdfEValidationResult record:
pec1 (PDF/E-1 identifier found and non-empty), pecNone (no PDF/E marker), or pecUnknown (parse failed or marker present but value missing).TPdfEValidationIssues set containing zero or more values: pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDatesConformance is a real PDF/E level and Issues is emptyValidatePdfE is a read-only inspection — it does not modify
the document and is safe to call repeatedly. Use it before archiving a
PDF/E payload to surface the file-format-level non-conformances this
library can detect. For the common "is this PDF/E-1?" check that does
not need the issue list, prefer the lighter-weight
PdfEConformance property
pveiInfoVersionMismatch only when both Info /ISO_PDFEVersion and XMP pdfe:ISO_PDFEVersion are present and disagree. When the Info entry is absent the validator reports pveiMissingInfoVersionEntry only, so there is no spurious mismatchConformance = pecUnknown and an empty Issues set
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;