THotPDF.RepairPDFA4 Method
Exécute une transaction de graphe d’objets bornée qui applique une normalisation PDF/A-4 déterministe, valide le résultat, puis soit commit l’ensemble complet de réparations sûres, soit restaure l’état d’origine du document
Déclaration
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues;
out Findings: THPDFComplianceFindings): boolean; overload;
Contrat de commit
Truesignifie que la transaction a été acceptée, y compris le cas sans changement pour un document déjà conformeFalsesignifie que la transaction a été annulée après un échec de limite, une régression de validation, une exception ou une politiqueRequireFullConformancenon satisfaiteReport.ValidationSucceededest le résultat de conformité complète faisant foi après une réparation validée- Avec les options par défaut, des réparations sûres peuvent être commises tandis que des constats de validation dangereux sans rapport restent explicites dans
IssuesetFindings
Périmètre de réparation sûr
La méthode peut normaliser l’en-tête PDF 2.0, créer un ID de trailer manquant, créer ou réparer les streams et dictionnaires de métadonnées, canoniser l’identification PDF/A par URI d’espace de noms tout en préservant tout préfixe RDF légal, supprimer les entrées Catalog interdites et supprimer les structures de présentation alternative
La réparation XMP UTF-8 supprime les attributs interdits d’en-tête de paquet et d’encodage d’octets, utilise l’espace de noms canonique d’identification PDF/A, écrit part=4 et rev=2020 et sélectionne la propriété de conformité base, ingénierie ou fichiers associés correcte
Le pipeline de réparation ne réécrit jamais les streams de contenu de pages ou d’annotations, les polices, les espaces colorimétriques, la transparence, les images, les opérateurs graphiques ni le texte extrait
Rollback et auditabilité
Les instantanés de graphe couvrent les mutations de dictionnaires et les octets de streams de métadonnées, si bien que le rollback restaure l’en-tête d’origine, l’état du trailer, le graphe d’objets, la charge XMP et le contenu des pages
La surcharge partagée de constats joint les actions de réparation, les états appliqué, non résolu, échoué ou annulé, les compteurs de réparations, des identifiants de règles stables, les clauses, les chemins d’objets, les numéros d’objets et les emplacements de pages
Les budgets d’objets, de mutations, de problèmes retenus, d’octets décodés et de tokens de contenu empêchent les fichiers adverses de transformer la réparation ou ses portes de validation en travail illimité
Exemple
var
Options: THPDFPDFA4RepairOptions;
Report: THPDFPDFA4RepairReport;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4RepairOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.RepairPDFA4(Options, Report, Issues) then
raise Exception.Create('PDF/A-4 repair rolled back');
if not Report.ValidationSucceeded then
LogRemainingPDFA4Issues(Issues);
end;