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

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;

API associées