function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE doorloopt het geopende document op zoek naar de markers op bestandsformaatniveau die ISO 24517-1:2008 definieert:
pdfe:ISO_PDFEVersion (§5 + §13.3)pdfaExtension:schemas-beschrijving voor de pdfe-namespace (extensieschema-eis uit de XMP Specification 2004, overgeërfd via §13.1)/ISO_PDFEVersion met een literal-string-waarde (§5 SHALL)/ID-array (§6.2)xmp:CreateDate- en xmp:ModifyDate-items in XMP (overgeërfd uit ISO 19005-1 §6.7 via §13.1)Het resultaat is een TPdfEValidationResult-record:
pec1 (PDF/E-1-identificator gevonden en niet leeg), pecNone (geen PDF/E-marker) of pecUnknown (parsing mislukt of marker aanwezig maar waarde ontbreekt)TPdfEValidationIssues-verzameling met nul of meer waarden: pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDatesConformance een echt PDF/E-niveau is en Issues leeg isValidatePdfE is een alleen-lezen inspectie — het document wordt niet gewijzigd en herhaalde aanroepen zijn veilig. Gebruik het voordat een PDF/E-payload naar een engineeringarchief gaat om de niet-conformiteiten op bestandsformaatniveau te tonen die deze bibliotheek kan detecteren. Voor de gebruikelijke check "is dit PDF/E-1?" die de problemenlijst niet nodig heeft, verdient de lichtere eigenschap PdfEConformance de voorkeur
pveiInfoVersionMismatch alleen wanneer zowel Info /ISO_PDFEVersion als XMP pdfe:ISO_PDFEVersion aanwezig zijn en afwijken. Wanneer het Info-item ontbreekt, rapporteert de validator alleen pveiMissingInfoVersionEntry (geen ten onrechte gemelde mismatch)Conformance = pecUnknown en een lege Issues-verzameling
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;