Rapports de prévalidation
Conformité, Inspection de document, Automatisation
Sélection du profil de lecteur PDF/UA
Les contrôles PDF/UA sélectionnent la partie 2 lorsque le XMP identifie pdfuaid:part=2 et conservent sinon les contrôles de la partie 1 ; les contrôles PDF/UA-1 historiques décrits ici ne sont nullement implicites pour la partie 2
Le profil PDF/UA-2 implémente les contrôles de base d’identification, d’espaces de noms, de rôles et de structure ; les rapports structurés utilisent PDF/UA-2 et ISO 14289-2 et indiquent fullCertification=false ainsi que le périmètre non vérifié
Utilisez CheckFilePDFUACompliance ou RunPDFUAValidationPipelineTask pour forcer une partie cible, et GetPDFUAReadValidationCoverageJSON pour inspecter les limites de capacités
PDF Library for Delphi peut exécuter ses contrôles intégrés de conformité de fichier PDF/A et PDF/UA-1 sur un PDF externe et convertir le résultat en rapport réutilisable. Utilisez les API de rapport lorsqu’une application ou un pipeline de construction a besoin des mêmes diagnostics que CheckFileCompliance, sans vouloir gérer directement les handles de listes de chaînes
Le pipeline de rapports est volontairement organisé en couches. CheckFileCompliance reste l’API de bas niveau qui renvoie des handles de listes de problèmes. CreatePreflightReport met en forme les contrôles sélectionnés dans un corps stable en texte brut. CreatePreflightReportEx convertit ce même rapport texte au format texte, JSON, HTML ou CSV afin que tous les formats partagent le même état de réussite ou d’échec et le même nombre de problèmes
API de la bibliothèque
| CheckFileCompliance | Exécute un contrôle de conformité sélectionné sur un fichier PDF et renvoie 0 en cas de réussite, ou un StringListID contenant les lignes de problèmes. |
|---|---|
| CreatePreflightReport | Exécute les contrôles PDF/A, PDF/UA-1 ou les deux, puis renvoie un rapport en texte brut comprenant les métadonnées d’en-tête, une section par contrôle et un récapitulatif final. |
| CreatePreflightReportEx | Renvoie le même rapport au format texte (0), JSON (1), HTML (2) ou CSV (3). Les valeurs de format inconnues utilisent le texte par défaut. |
| SavePreflightReport | Écrit le rapport en texte brut au format UTF-8 et crée le répertoire parent si nécessaire. |
| SavePreflightReportEx | Écrit un rapport texte, JSON, HTML ou CSV au format UTF-8 et crée le répertoire parent si nécessaire. |
| ComparePreflightReports | Compare deux rapports en texte brut, ignore les lignes d’horodatage variables Generated: et ne renvoie une différence compacte que lorsque le contenu stable a changé. |
Contrat de format
| Text | Corps canonique du rapport. Il contient Generated, Input, Checks, Issue mode, une section pour chaque contrôle sélectionné et un bloc Summary avec Total issues et Result. |
|---|---|
| JSON | Objet unique comprenant title, generated, input, checks, issueMode, sections et summary. Chaque section possède un nom, un état et un tableau de chaînes décrivant les problèmes. |
| HTML | Document HTML UTF-8 autonome. Le rapport texte est échappé pour HTML et affiché dans un bloc préformaté, de sorte que son contenu reste visible sans être interprété comme du balisage. |
| CSV | Les lignes utilisent les colonnes fixes kind,section,status,code,message. Les lignes meta contiennent les champs d’en-tête, les lignes check l’état PASS/FAIL de la section, les lignes issue séparent les codes numériques des messages et les lignes summary contiennent les totaux finaux. |
Sélection de conformité
Les API de rapport utilisent un masque de bits pour ComplianceTests : 1 sélectionne PDF/A, 2 sélectionne PDF/UA-1 et 3 sélectionne les deux. La valeur 0 exécute également les deux contrôles. Options utilise actuellement le bit 1 pour arrêter chaque contrôle sélectionné après son premier problème ; transmettez 0 pour recueillir tous les problèmes signalés
Démo en ligne de commande
La démo console Delphi PreflightReport illustre le flux de production des rapports sans ajouter d’interface utilisateur propre à l’application. Elle peut valider un PDF unique, générer une sortie mise en forme, comparer un nouveau rapport texte à une référence ou traiter un répertoire par lots
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html
Le mode fichier unique renvoie le code de sortie 0 lorsque les contrôles sélectionnés ne signalent aucun problème, 1 pour les erreurs de ligne de commande ou d’exécution et 2 lorsqu’un problème est signalé ou que la comparaison avec la référence diffère. Le mode répertoire écrit un fichier <basename>.preflight.<ext> par PDF et ajoute un fichier preflight-summary.csv contenant le chemin source, l’état de réussite ou d’échec, le nombre de problèmes et le chemin du rapport
Notes de comparaison
ComparePreflightReports est défini pour les rapports en texte brut. Il faut lui fournir le rapport texte de référence et le rapport texte nouvellement généré, même lorsque la sortie destinée aux utilisateurs de cette exécution est au format JSON, HTML ou CSV. Le comparateur normalise les lignes Generated:, car les horodatages changent à chaque exécution ; toutes les autres lignes stables sont comparées dans l’ordre avec une petite fenêtre d’anticipation afin que les différences d’insertion et de suppression restent lisibles
Voir aussi
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics