THotPDF.RepairPDFUA2Structure Method

Répare les défauts récupérables d’espace de noms, d’attributs, de structure et d’accessibilité PDF/UA-2 dans une transaction de graphe copy-on-write et valide le graphe candidat avant le commit

Déclaration

function RepairPDFUA2Structure(
  const Options: THPDFUA2RepairOptions;
  out Report: THPDFUA2RepairReport;
  out Issues: THPDFUA2ValidationIssues): boolean; overload;

function RepairPDFUA2Structure(
  const Options: THPDFUA2RepairOptions;
  out Report: THPDFUA2RepairReport;
  out Issues: THPDFUA2ValidationIssues;
  out Findings: THPDFComplianceFindings): boolean; overload;

Unité

HPDFDoc

Options de réparation

Partez de THPDFUA2RepairOptions.Default et ne dérogez qu’aux décisions de politique exigées par le workflow d’entrée

ChampRôle
NormalizeDuplicateNamespacesReconstruit StructTreeRoot/Namespaces avec un dictionnaire indirect canonique par URI et rejette les role maps en conflit
RegisterReferencedNamespacesEnregistre les dictionnaires d’espaces de noms valides référencés par les éléments de structure, les attributs ou les role maps sensibles aux espaces de noms
RepairStandardStructureNamespacesAffecte l’espace de noms PDF 2.0 aux rôles standards lorsque l’espace de noms est manquant ou invalide et normalise toujours le Document de premier niveau
RepairAttributeNamespacesCanonise les références d’espaces de noms d’attributs et supprime les entrées d’espaces de noms invalides des propriétaires standards
RepairAttributeRevisionsNormalise les numéros de révision négatifs ou fractionnaires et supprime les entrées de révision orphelines des tableaux d’attributs
RepairListSemanticsNormalise la numérotation, les indicateurs de continuation, les types de continuation invalides et une légende unique mal placée sans inventer de contenu de liste
RepairTableSemanticsNormalise les spans et scopes invalides, supprime les références d’en-têtes locales à la table invalides et déplace une légende unique mal placée
RepairRubyWarichuSequencesRéordonne les enfants uniquement lorsque le multiset exact de rôles requis est déjà présent
RepairPronunciationHintsSupprime les indications mal typées, élague les références de lexique invalides et normalise les sous-types MIME PLS embarqués
RepairMissingAlternateTextRestaure les Alt manquants pour Figure, Formula et Form à partir d’un titre existant, d’un texte d’expansion, du texte extrait de même MCID ou d’un repli explicite, dans cet ordre
RepairLanguageInheritancePromeut vers le Catalog une langue valide de racine de structure ou explicite par défaut, et supprime les entrées de langue invalides ou redondantes au niveau de la structure lorsque l’héritage est non ambigu
RepairHeadingOrderRenumérote uniquement les défauts de premier titre et de niveaux sautés tout en conservant l’ordre du document
RepairArtifactTaggingRéécrit les balises de marked-content associées à un élément de structure Artifact pour le contenu des pages producteur et chargées
AllowDocumentFragmentHeadingStartsRéinitialise le contexte de titres dans chaque DocumentFragment pour la réparation et la validation post-réparation
RollbackOnValidationFailureRestaure le graphe d’origine lorsqu’une erreur PDF/UA-2 subsiste après la réparation
CustomAttributeNamespaceURIFournit l’espace de noms explicite pour les propriétaires d’attributs personnalisés dont la sémantique ne peut pas être déduite sans risque, avec un défaut vide qui échoue fermé
DefaultLanguageFournit une balise de langue BCP-47 uniquement lorsque ni le Catalog ni la racine de structure ne contiennent de langue valide
FallbackAlternateTextFournit un texte alternatif relu par l’appelant après l’échec de toutes les sources dérivées du document, avec un défaut vide qui ne fabrique jamais de description
MaxGeneratedAlternateTextCharactersBorne l’extraction de texte de même MCID et vaut 4 096 unités de code UTF-16 par défaut
MaxObjectsBorne le scan du graphe d’objets et vaut 1 000 000 d’objets par défaut
MaxRepairsBorne les mutations retenues et vaut 100 000 opérations de réparation par défaut

Rapport de réparation

THPDFUA2RepairReport rapporte si le graphe a changé ou a été annulé, si une borne a été dépassée, l’état de validation post-réparation, les objets examinés, les erreurs restantes et des compteurs par famille de réparations, y compris texte alternatif, entrées de langue, niveaux de titres et balises Artifact

UnresolvedAlternateTextCount, UnresolvedLanguageCount et UnresolvedArtifactCount distinguent la sémantique exigeant encore une relecture de l’auteur des mutations automatiques

Le tableau THPDFUA2ValidationIssues renvoyé contient les diagnostics post-réparation lorsque la validation échoue et des diagnostics stables propres à la réparation lorsqu’une borne de ressource ou un doublon de role map en conflit annule la transaction

La surcharge détaillée renvoie aussi les constats pré-réparation annotés crsApplied, crsUnresolved, crsRolledBack ou crsFailed, plus des résumés comptés pour chaque famille de réparations

Cette surcharge de provenance effectue une passe de validation bornée supplémentaire avant réparation ; utilisez la surcharge existante à trois sorties lorsque seuls le rapport final et les problèmes sont nécessaires

Atomicité et sécurité

Exemple

var
  Options: THPDFUA2RepairOptions;
  Report: THPDFUA2RepairReport;
  Issues: THPDFUA2ValidationIssues;
begin
  Options := THPDFUA2RepairOptions.Default;
  Options.DefaultLanguage := 'en-US';
  Options.CustomAttributeNamespaceURI :=
    'https://example.com/ns/accessibility-attributes';
  if not PDF.RepairPDFUA2Structure(Options, Report, Issues) then
    raise Exception.CreateFmt('%s at %s',
      [String(Issues[0].Code), String(Issues[0].Path)]);
end;

API associées