function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE går igenom det öppnade dokumentet och letar efter PDF/E-1-filformatmarkörerna som definieras av ISO 24517-1:2008:
pdfe:ISO_PDFEVersion (§5 + §13.3)pdfaExtension:schemas för pdfe-namnutrymmet (kravet på extension-schema i XMP Specification 2004, ärvt via §13.1)/ISO_PDFEVersion med ett literal-string-värde (§5 SHALL)/ID-array (§6.2)xmp:CreateDate och xmp:ModifyDate-poster i XMP (ärvt från ISO 19005-1 §6.7 via §13.1)Resultatet är ett TPdfEValidationResult-record:
pec1 (PDF/E-1 identifierad och inte tom), pecNone (ingen PDF/E-markör) eller pecUnknown (parsing misslyckades eller markören finns men värdet saknas)TPdfEValidationIssues-uppsättning med noll eller flera värden: pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDatesValidatePdfE är en skrivskyddad inspektion — den ändrar inte dokumentet och är säker att anropa upprepade gånger. Använd den innan du skickar en PDF/E-payload till ett engineering archive för att synliggöra de icke-överensstämmelser på filformatsnivå som biblioteket kan upptäcka. För den vanliga kontrollen "är detta PDF/E-1?" som inte behöver problemlistan, använd den lättare PdfEConformance-egenskapen
pveiInfoVersionMismatch endast när både Info /ISO_PDFEVersion och XMP pdfe:ISO_PDFEVersion finns och skiljer sig åt. När Info-posten saknas rapporterar valideraren bara pveiMissingInfoVersionEntry (ingen falsk mismatch)Conformance = pecUnknown och en tom Issues-mängd/ID-strängarna förblir direkta objekt. Valideraren flaggar därför INTE kryptering som en icke-överensstämmelse
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;