function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE percorre il documento aperto alla ricerca dei marcatori di formato file PDF/E-1 definiti da ISO 24517-1:2008:
pdfe:ISO_PDFEVersion (§5 + §13.3).pdfaExtension:schemas corrispondente per il namespace pdfe (requisito extension-schema della XMP Specification 2004, ereditato tramite §13.1)./ISO_PDFEVersion nel Document Information Dictionary con un valore literal-string (§5 SHALL)./ID nel trailer (§6.2).xmp:CreateDate e xmp:ModifyDate in XMP (ereditate da ISO 19005-1 §6.7 tramite §13.1).Il risultato è un record TPdfEValidationResult:
pec1 (identificatore PDF/E-1 trovato e non vuoto), pecNone (nessun marcatore PDF/E) o pecUnknown (analisi fallita o marcatore presente ma valore mancante).TPdfEValidationIssues contenente zero o più valori: pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDates.Conformance è un livello PDF/E reale e Issues è vuotoValidatePdfE è un'ispezione in sola lettura — non modifica
il documento e può essere chiamato ripetutamente in sicurezza. Usarlo prima di inviare un
payload PDF/E a un archivio di ingegneria per evidenziare le
non conformità a livello di formato file che questa libreria può rilevare. Per il
comune controllo "è un PDF/E-1?" che non richiede l'elenco dei problemi,
preferire la proprietà più leggera PdfEConformance.
pveiInfoVersionMismatch solo quando sia Info /ISO_PDFEVersion che XMP pdfe:ISO_PDFEVersion sono presenti e non concordano. Quando la voce Info è assente il validatore riporta soltanto pveiMissingInfoVersionEntry (nessun mismatch spurio).Conformance = pecUnknown e un insieme Issues vuoto.
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;