THotPDF.ValidatePDFA4 Method

Valide un graphe d’objets généré ou chargé par rapport aux profils pris en charge PDF/A-4 base, PDF/A-4e ingénierie ou PDF/A-4f fichiers associés, et renvoie des diagnostics structurés stables

Déclaration

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Issues: THPDFPDFA4ValidationIssues): boolean; overload;

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Findings: THPDFComplianceFindings): boolean; overload;

Unité

HPDFDoc

Types de profil et de sévérité

THPDFPDFA4Profile = (
  p4pAutomatic,
  p4pBase,
  p4pEngineering,
  p4pAssociatedFiles
);

THPDFPDFA4IssueSeverity = (
  p4isWarning,
  p4isError
);

THPDFPDFA4Profile sélectionne l’inférence par métadonnées ou un profil de conformité explicite, tandis que THPDFPDFA4IssueSeverity distingue les diagnostics consultatifs des erreurs de validation

Options

ChampRôle
ProfileSélectionne la détection automatique par métadonnées, la validation base, ingénierie ou fichiers associés
MaxObjectsBorne la traversée itérative du graphe d’objets et vaut 1 000 000 d’objets par défaut
MaxIssuesBorne les diagnostics conservés et vaut 1 024 constats par défaut
MaxDecodedBytesBorne les octets cumulés de métadonnées, ICC et flux de contenu décodés et vaut 64 Mio par défaut
MaxContentTokensBorne les tokens cumulés des flux de contenu et vaut 4 000 000 de tokens par défaut
CheckEmbeddedFontsVérifie que les polices de rendu disposent d’un programme de police intégré
CheckAnnotationAppearancesVérifie les indicateurs d’annotations et les flux d’apparence normaux
CheckOptionalContentVérifie les noms et l’unicité des configurations de contenu facultatif
CheckColourSpacesVérifie la couleur de périphérique peinte, les profils ICC, les output intents, les valeurs par défaut, les images, les shadings, les formulaires et les groupes de transparence
CheckTransparencyVérifie l’alpha peint, les soft masks, les modes de fusion et la couverture des espaces de fusion au niveau de la page
CheckCompositeFontsVérifie les descendants Type 0, CIDSystemInfo, la compatibilité CMap et les contraintes CIDToGIDMap
CheckMetadataPacketsVérifie chaque flux de métadonnées au regard des contraintes UTF-8, d’en-tête de paquet, d’enveloppe RDF et d’identification PDF/A

Diagnostics

Chaque THPDFPDFA4ValidationIssue rapporte la sévérité, un code à espace de noms stable, la clause ISO 19005-4 applicable, le chemin d’objet, le numéro d’objet, l’index de page à base zéro lorsqu’il est connu et un message lisible par un humain

La surcharge THPDFComplianceFindings expose la même traversée via le modèle de constats partagé lisible par machine, avec le profil PDF/A-4 et l’état de réparation crsNotAttempted

Le validateur couvre l’identification PDF 2.0, l’ID de trailer et l’état de chiffrement, chaque paquet de métadonnées, les restrictions Info, les en-têtes ICC et le nombre de canaux, les output intents du document et des pages, la couleur de périphérique peinte, l’état graphique hérité à travers les tableaux de flux de contenu et les Form XObjects imbriqués, les masques d’image, les shadings, la transparence, l’intégration des polices au rendu, les relations de polices composites, les annotations et apparences, les restrictions AcroForm, les actions et actions supplémentaires, les fichiers associés, le contenu facultatif, les références externes et les règles 3D ou de pièces jointes propres au profil

Les constats de couleur et de transparence s’appuient sur les opérateurs de peinture plutôt que sur les seuls opérateurs de réglage de couleur ; la tokenisation du contenu et la réutilisation des flux décodés sont mises en cache, chaque invocation évaluant toujours l’état graphique hérité pour son propre contexte de page ou de Form

Les limites d’octets décodés, de tokens de contenu, d’objets et de constats conservés déclenchent un échec sûr avec des constats pdfa4.validation.* stables avant qu’un travail non borné ne puisse se poursuivre

Exemple

var
  Options: THPDFPDFA4ValidationOptions;
  Issues: THPDFPDFA4ValidationIssues;
begin
  Options := THPDFPDFA4ValidationOptions.Default;
  Options.Profile := p4pAutomatic;
  if not PDF.ValidatePDFA4(Options, Issues) then
    raise Exception.CreateFmt('%s at %s',
      [String(Issues[0].Code), String(Issues[0].Path)]);
end;

Comportement de génération

EndDoc exécute automatiquement le validateur pour '4', '4E' et '4F' et lève une exception avant la sérialisation lorsqu’une erreur subsiste

La génération PDF/A-4 omet l’entrée Info du trailer, PDF/A-4f crée toujours l’arbre de noms EmbeddedFiles requis, et les annotations de pièces jointes ne sont acceptées que par PDF/A-4f, où le flux intégré, le Filespec, la relation AF, le tableau AF du Catalog et l’arbre de noms sont émis ensemble

API associées