THotPDF.RepairPDFUA2Structure-metode

Reparerer gjenopprettbare PDF/UA-2-defekter i namespace, attributter, struktur og tilgjengelighet inne i en copy-on-write-graftransaksjon, og validerer kandidatgrafen før commit

Deklarasjon

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;

Enhet

HPDFDoc

Reparasjonsalternativer

Start med THPDFUA2RepairOptions.Default og overstyr bare policybeslutningene arbeidsflyten krever

FeltFormål
NormalizeDuplicateNamespacesBygger StructTreeRoot/Namespaces opp igjen med én canonical indirekte ordbok per URI og avviser motstridende role maps
RegisterReferencedNamespacesRegistrerer gyldige namespace-ordbøker det refereres til fra strukturelementer, attributter eller namespace-bevisste role maps
RepairStandardStructureNamespacesTilordner PDF 2.0-namespace til standardroller når namespace mangler eller er ugyldig, og normaliserer alltid toppnivåets Document
RepairAttributeNamespacesKanoniserer attributtnamespace-referanser og fjerner ugyldige namespace-oppføringer fra standardowners
RepairAttributeRevisionsNormaliserer negative eller desimale revisjonsnumre og fjerner foreldreløse revisjonsoppføringer fra attributtmatriser
RepairListSemanticsNormaliserer nummerering, continuation-flagg, ugyldige continuation-typer og én enkelt feilplassert caption uten å dikte opp listinnhold
RepairTableSemanticsNormaliserer ugyldige spans og scopes, fjerner ugyldige tabellokale headerreferanser og flytter én enkelt feilplassert caption
RepairRubyWarichuSequencesSorterer barn på nytt bare når den eksakte påkrevde rollen-multimengden allerede finnes
RepairPronunciationHintsFjerner feiltypede hints, rydder bort ugyldige leksikonreferanser og normaliserer innebygde PLS MIME-subtyper
RepairMissingAlternateTextGjenoppretter manglende Alt for Figure, Formula og Form fra eksisterende tittel, utvidelsestekst, ekstrahert tekst fra samme MCID, eller en eksplisitt fallback, i den rekkefølgen
RepairLanguageInheritanceLøfter et gyldig structure-root- eller eksplisitt standardspråk opp til Catalog og fjerner ugyldige eller redundante språkoppføringer på strukturnivå når arven er entydig
RepairHeadingOrderNummererer om bare første-overskrift- og hoppet-nivå-defekter mens dokumentrekkefølgen beholdes
RepairArtifactTaggingOmskriver marked-content-tagger knyttet til et Artifact-strukturelement for produsent og lastet sideinnhold
AllowDocumentFragmentHeadingStartsNullstiller overskriftskonteksten inne i hver DocumentFragment for både reparasjon og etterpågående validering
RollbackOnValidationFailureGjenoppretter original grafen når noen PDF/UA-2-feel gjenstår etter reparasjonen
CustomAttributeNamespaceURIOppgir det eksplisitte namespace for custom attributtowners hvis semantikk ikke kan utledes trygt, med tom standardverdi som feiler lukket
DefaultLanguageOppgir en BCP-47-språkkode bare når verken Catalog eller strukturoten inneholder et gyldig språk
FallbackAlternateTextOppgir alternativ tekst gjennomgått av kalleren etter at alle dokumentbaserte kilder har feilet, med tom standardverdi som aldri fabriserer en beskrivelse
MaxGeneratedAlternateTextCharactersBegrenser tekstekstraksjon fra samme MCID og bruker 4 096 UTF-16-kodeenheter som standard
MaxObjectsBegrenser skanning av objektgrafen og bruker 1 000 000 objekter som standard
MaxRepairsBegrenser beholdte mutasjoner og bruker 100 000 reparasjonsoperasjoner som standard

Reparasjonsrapport

THPDFUA2RepairReport rapporterer om grafen endret seg eller ble rullet tilbake, om en grense ble overskredet, valideringsstatus etter reparasjon, undersøkte objekter, gjenværende feil, og telling for hver reparasjonsfamilie inkludert alternativ tekst, språkoppføringer, overskriftsnivåer og Artifact-tagger

UnresolvedAlternateTextCount, UnresolvedLanguageCount og UnresolvedArtifactCount skiller semantikk som fortsatt krever forfattergjennomgang fra automatiske mutasjoner

Den returnerte THPDFUA2ValidationIssues-matrisen inneholder diagnosene etter reparasjon når valideringen feiler, og stabile reparasjonsspesifikke diagnoser når en ressursgrense eller en motstridende duplisert role map avbryter transaksjonen

Den detaljerte overloaden returnerer også funn fra før reparasjon annotert som crsApplied, crsUnresolved, crsRolledBack eller crsFailed, pluss oppsummerte telling per reparasjonsfamilie

Denne provenance-overloaden kjører en ekstra avgrenset valideringsrunde før reparasjonen; bruk den eksisterende overloaden med tre ut-data når bare sluttrapporten og issues trengs

Atomisitet og trygghet

Eksempel

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;

Relaterte API-er