THotPDF.RepairPDFUA2Structure-Methode

Repariert wiederherstellbare PDF/UA-2-Defekte an Namespace, Attributen, Struktur und Barrierefreiheit innerhalb einer Copy-on-Write-Graph-Transaktion und validiert den Kandidatengraphen vor dem Commit

Deklaration

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;

Einheit

HPDFDoc

Reparaturoptionen

Starten Sie mit THPDFUA2RepairOptions.Default und überschreiben Sie nur die Policy-Entscheidungen, die der Eingabe-Workflow verlangt

FeldZweck
NormalizeDuplicateNamespacesBaut StructTreeRoot/Namespaces mit genau einem kanonischen indirekten Dictionary pro URI neu ab und weist widersprüchliche Role Maps zurück
RegisterReferencedNamespacesRegistriert gültige Namespace-Dictionarys, die von Strukturelementen, Attributen oder namespace-bewussten Role Maps referenziert werden
RepairStandardStructureNamespacesWeist Standardrollen den PDF-2.0-Namespace zu, wenn der Namespace fehlt oder ungültig ist, und normalisiert das oberste Document immer
RepairAttributeNamespacesKanonisiert Attribut-Namespace-Referenzen und entfernt ungültige Namespace-Einträge von Standard-Ownern
RepairAttributeRevisionsNormalisiert negative oder gebrochene Revisionsnummern und entfernt verwaiste Revisionseinträge aus Attribut-Arrays
RepairListSemanticsNormalisiert Nummerierung, Fortsetzungs-Flags, ungültige Fortsetzungstypen und eine einzelne fehlplatzierte Caption, ohne Listeninhalt zu erfinden
RepairTableSemanticsNormalisiert ungültige Spans und Scopes, entfernt ungültige tabellenlokale Header-Referenzen und verschiebt eine einzelne fehlplatzierte Caption
RepairRubyWarichuSequencesOrdnet Kinder nur um, wenn das exakt erforderliche Role-Multiset bereits vorhanden ist
RepairPronunciationHintsEntfernt falsch typisierte Hinweise, beschneidet ungültige Lexikon-Referenzen und normalisiert eingebettete PLS-MIME-Subtypes
RepairMissingAlternateTextStellt fehlendes Alt für Figure, Formula und Form aus vorhandenem Titel, Expansionstext, extrahiertem Text mit gleicher MCID oder einem expliziten Fallback wieder her, in dieser Reihenfolge
RepairLanguageInheritanceHolt eine gültige Struktur-Root- oder explizite Standardsprache in den Catalog und entfernt ungültige oder redundante Sprachattribute auf Strukturebene, wenn die Vererbung eindeutig ist
RepairHeadingOrderNummeriert nur Defekte an erster Überschrift und übersprungenen Ebenen neu und bewahrt dabei die Dokumentreihenfolge
RepairArtifactTaggingSchreibt Marked-Content-Tags um, die einem Artifact-Strukturelement zugeordnet sind, für Producer- und geladene Seiteninhalte
AllowDocumentFragmentHeadingStartsSetzt den Überschriftenkontext innerhalb jedes DocumentFragment für Repair und Post-Repair-Validierung zurück
RollbackOnValidationFailureStellt den ursprünglichen Graphen wieder her, wenn nach der Reparatur ein PDF/UA-2-Fehler verbleibt
CustomAttributeNamespaceURILiefert den expliziten Namespace für Custom-Attribute-Owner, deren Semantik nicht sicher erschlossen werden kann; leerer Standard schlägt kontrolliert fehl
DefaultLanguageLiefert ein BCP-47-Sprachtag nur dann, wenn weder Catalog noch Struktur-Root eine gültige Sprache enthalten
FallbackAlternateTextLiefert vom Aufrufer geprüften Alternativtext, nachdem alle dokumentspezifischen Quellen fehlschlagen; leerer Standard erfindet niemals eine Beschreibung
MaxGeneratedAlternateTextCharactersBegrenzt die Textextraktion mit gleicher MCID und ist mit 4.096 UTF-16-Code-Einheiten vorbelegt
MaxObjectsBegrenzt das Objektgraph-Scanning und ist standardmäßig auf 1.000.000 Objekte begrenzt
MaxRepairsBegrenzt zurückgehaltene Mutationen und ist standardmäßig auf 100.000 Reparaturaktionen begrenzt

Reparaturbericht

THPDFUA2RepairReport meldet, ob der Graph geändert oder zurückgerollt wurde, ob eine Grenze überschritten wurde, den Post-Repair-Validierungsstatus, untersuchte Objekte, verbleibende Fehler und Zähler für jede Reparaturfamilie, einschließlich Alternativtext, Spracheinträge, Überschriftenebenen und Artifact-Tags

UnresolvedAlternateTextCount, UnresolvedLanguageCount und UnresolvedArtifactCount unterscheiden Semantik, die noch einer Autorenprüfung bedarf, von automatischen Mutationen

Das zurückgelieferte THPDFUA2ValidationIssues-Array enthält die Post-Repair-Diagnostik, wenn die Validierung fehlschlägt, und stabile reparaturspezifische Diagnosen, wenn eine Ressourcengrenze oder eine widersprüchliche doppelte Role Map die Transaktion abbricht

Der detaillierte Overload liefert zusätzlich Pre-Repair-Findings mit der Kennung crsApplied, crsUnresolved, crsRolledBack oder crsFailed plus gezählte Zusammenfassungen je Reparaturfamilie

Dieser Provenance-Overload führt einen zusätzlichen begrenzten Pre-Repair-Validierungslauf aus; verwenden Sie den vorhandenen Overload mit drei Ausgängen, wenn nur der abschließende Bericht und die Issues benötigt werden

Atomarität und Sicherheit

Beispiel

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;

Verwandte APIs