PDFium Delphi Component Docs

ValidatePdfUa Méthode

Composant: TPdf  ·  Unit: PDFium
Inspecte le document courant pour la conformité PDF/UA-1 ou PDF/UA-2 et renvoie les problèmes spécifiques au profil

Syntax

function ValidatePdfUa: TPdfUaValidationResult;

Description

ValidatePdfUa détecte PDF/UA-1 et PDF/UA-2 depuis XMP et applique les règles du profil sélectionné

Le résultat est un enregistrement TPdfUaValidationResult :

La validation PDF/UA-2 exige en outre un pdfuaid:rev à quatre chiffres, un PDF 2.0 effectif, un ordre de tabulation d’annotations A/W/S, pas de XFA, des noms de configuration de contenu optionnel non vides, pas d’annotations Sound ou Movie dépréciées en PDF 2.0 et des types de structure de titres H1 à Hn numérotés explicitement

Depuis v3.73.0, l’ensemble de problèmes peut aussi contenir pvuaiNaturalLanguageUncovered lorsqu’un texte de page non Artifact ou une chaîne de structure Title, Alt, ActualText ou Expansion n’a pas de déclaration /Lang effective valide

Depuis v3.74.0, l’ensemble de problèmes peut aussi contenir pvuaiArtifactInStructureTree lorsqu’un objet de page Artifact porte un MCID revendiqué par l’arbre de structure de la page, y compris les artefacts de pagination basés sur des chemins

Depuis v3.75.0, les problèmes de mappage Unicode proviennent d’une seule passe InspectPdfUaUnicodeCoverage à la portée d’un objet ; un ActualText valide ne couvre que les caractères de son objet texte d’origine, tandis que les caractères Artifact et générés par PDFium sont exclus de la couverture sémantique

ValidatePdfUa 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 remettre un PDF à un système d’archivage ou à un contrôleur d’accessibilité pour faire remonter la non-conformité à l’opérateur. Pour le contrôle courant « est-ce un PDF/UA-1 ? » qui n’a pas besoin de la liste de problèmes, préférez la propriété plus légère PdfUaConformance

Remarks

Example

uses System.TypInfo;

var
  Outcome: TPdfUaValidationResult;
  Issue: TPdfUaValidationIssue;
begin
  Pdf1.FileName := 'C:\Incoming\report.pdf';
  Pdf1.Active := True;
  Outcome := Pdf1.ValidatePdfUa;
  Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfUaConformance),
    Ord(Outcome.Conformance)));
  for Issue in Outcome.Issues do
    Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfUaValidationIssue), Ord(Issue)));
end;

See Also

PdfUaConformance, SaveAsPdfUa, SaveAsPdfUaToStream, IsTagged, ValidatePdfA