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
| Champ | Rôle |
|---|---|
Profile | Sélectionne la détection automatique par métadonnées, la validation base, ingénierie ou fichiers associés |
MaxObjects | Borne la traversée itérative du graphe d’objets et vaut 1 000 000 d’objets par défaut |
MaxIssues | Borne les diagnostics conservés et vaut 1 024 constats par défaut |
MaxDecodedBytes | Borne les octets cumulés de métadonnées, ICC et flux de contenu décodés et vaut 64 Mio par défaut |
MaxContentTokens | Borne les tokens cumulés des flux de contenu et vaut 4 000 000 de tokens par défaut |
CheckEmbeddedFonts | Vérifie que les polices de rendu disposent d’un programme de police intégré |
CheckAnnotationAppearances | Vérifie les indicateurs d’annotations et les flux d’apparence normaux |
CheckOptionalContent | Vérifie les noms et l’unicité des configurations de contenu facultatif |
CheckColourSpaces | Vé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 |
CheckTransparency | Vérifie l’alpha peint, les soft masks, les modes de fusion et la couverture des espaces de fusion au niveau de la page |
CheckCompositeFonts | Vérifie les descendants Type 0, CIDSystemInfo, la compatibilité CMap et les contraintes CIDToGIDMap |
CheckMetadataPackets | Vé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