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, pveiMissingXmpDates.ValidatePdfE is a read-only inspection — it does not modify
the document and is safe to call repeatedly. Use it before pushing a
PDF/E payload into an engineering archive to surface the
file-format-level non-conformances this library can detect. For the
common "is this PDF/E-1?" check that doesn't 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 (no spurious mismatch).Conformance = 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;