function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE parcourt le document ouvert à la recherche des marqueurs de format de fichier PDF/E-1 définis par ISO 24517-1:2008 :
pdfe:ISO_PDFEVersion (§5 + §13.3)pdfaExtension:schemas correspondante pour l’espace de noms pdfe (exigence de schéma d’extension de la XMP Specification 2004, héritée via §13.1)/ISO_PDFEVersion dans le Document Information Dictionary avec une valeur de chaîne littérale (§5 SHALL)/ID de trailer (§6.2)xmp:CreateDate et xmp:ModifyDate dans XMP (héritées d’ISO 19005-1 §6.7 via §13.1)Le résultat est un enregistrement TPdfEValidationResult :
pec1 (identifiant PDF/E-1 trouvé et non vide), pecNone (aucun marqueur PDF/E) ou pecUnknown (échec de l’analyse ou marqueur présent mais valeur manquante)TPdfEValidationIssues contenant zéro ou plusieurs valeurs : pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDatesConformance est un vrai niveau PDF/E et que Issues est videValidatePdfE est une inspection en lecture seule — elle ne modifie pas
le document et peut être appelée en toute sécurité de façon répétée. Utilisez-la avant de pousser un
contenu PDF/E dans une archive d’ingénierie pour faire remonter les
non-conformités au niveau format de fichier que cette bibliothèque peut détecter. Pour le
contrôle courant « est-ce un PDF/E-1 ? » qui n’a pas besoin de la liste de problèmes,
préférez la propriété plus légère PdfEConformance
pveiInfoVersionMismatch uniquement lorsque à la fois Info /ISO_PDFEVersion et XMP pdfe:ISO_PDFEVersion sont présents et en désaccord. Lorsque l’entrée Info est absente, le validateur rapporte uniquement pveiMissingInfoVersionEntry (pas de faux désaccord)Conformance = pecUnknown et un ensemble Issues vide
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;