THotPDF.RepairPDFUA2Structure Method

Reparerer reparerbare PDF/UA-2 namespace-, attribut-, strukturelle og tilgængelighedsdefekter inde i en copy-on-write graftransaktion og validerer kandidatgrafen, inden der committes

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;

Enhed

HPDFDoc

Reparationsindstillinger

Start med THPDFUA2RepairOptions.Default og tilsidesæt kun de politikbeslutninger, som inputarbejdsgangen kræver

FeltFormål
NormalizeDuplicateNamespacesGenopbygger StructTreeRoot/Namespaces med én kanonisk indirekte ordbog pr. URI og afviser modstridende role maps
RegisterReferencedNamespacesRegistrerer gyldige namespace-ordbøger, som strukturelementer, attributter eller namespace-bevidste role maps refererer
RepairStandardStructureNamespacesTildeler PDF 2.0-namespace til standardroller, når namespace mangler eller er ugyldigt, og normaliserer altid det øverste Document
RepairAttributeNamespacesKanoniserer attribut-namespace-referencer og fjerner ugyldige namespace-poster fra standard owners
RepairAttributeRevisionsNormaliserer negative eller fraktionelle revisionsnumre og fjerner forældreløse revisionsposter fra attribut-arrays
RepairListSemanticsNormaliserer nummerering, continuation-flag, ugyldige continuation-typer og én enkelt forkert placeret caption uden at opfinde listeindhold
RepairTableSemanticsNormaliserer ugyldige spans og scopes, fjerner ugyldige tabel-lokale header-referencer og flytter én enkelt forkert placeret caption
RepairRubyWarichuSequencesSorterer børnene om, kun når den præcise påkrævede role-multimængde allerede er til stede
RepairPronunciationHintsFjerner forkert typede hints, beskærer ugyldige lexicon-referencer og normaliserer indlejrede PLS MIME-subtyper
RepairMissingAlternateTextGendanner manglende Alt for Figure, Formula og Form fra en eksisterende titel, ekspansionstekst, same-MCID-udtrukket tekst eller en eksplicit fallback, i netop den rækkefølge
RepairLanguageInheritancePromoterer et gyldigt strukturrod eller et eksplicit standardsprog op i Catalog og fjerner ugyldige eller redundante sprogposter på strukturniveau, når nedarvningen er utvetydig
RepairHeadingOrderOmunmererer kun first-heading- og skipped-level-defekter, mens dokumentrækkefølgen bevares
RepairArtifactTaggingOmskriver marked-content-tags knyttet til et Artifact-strukturelement for producer- og indlæst sideindhold
AllowDocumentFragmentHeadingStartsNulstiller heading-konteksten i hver DocumentFragment for både reparation og validering efter reparation
RollbackOnValidationFailureGendanner den oprindelige graf, når der stadig er PDF/UA-2-fejl tilbage efter reparationen
CustomAttributeNamespaceURILeverer det eksplicitte namespace til custom attribute-owners, hvis semantik ikke kan udledes sikkert, med en tom standardværdi, der fejler lukket
DefaultLanguageLeverer et BCP-47-sprogtag, kun når hverken Catalog eller strukturroden indeholder et gyldigt sprog
FallbackAlternateTextLeverer kalder-gennemgået alternate text, når alle dokumentbaserede kilder fejler, med en tom standardværdi, der aldrig opfinder en beskrivelse
MaxGeneratedAlternateTextCharactersAfgrænser same-MCID-tekstudtrækning og er som standard 4,096 UTF-16 kodeenheder
MaxObjectsAfgrænser scanningen af objektgrafen og er som standard 1,000,000 objekter
MaxRepairsAfgrænser gemte mutationer og er som standard 100,000 reparationsoperationer

Reparationsrapport

THPDFUA2RepairReport rapporterer, om grafen blev ændret eller rullet tilbage, om en grænse blev overskredet, valideringsstatus efter reparation, undersøgte objekter, resterende fejl og antal for hver reparationsfamilie, inklusive alternate text, sprogposter, heading-niveauer og Artifact-tags

UnresolvedAlternateTextCount, UnresolvedLanguageCount og UnresolvedArtifactCount adskiller semantik, der stadig kræver forfattergennemgang, fra automatiske mutationer

Det returnerede THPDFUA2ValidationIssues-array indeholder diagnostikken efter reparation, når valideringen fejler, og stabile reparationspecifikke diagnostikker, når en ressourcegrænse eller et modstridende duplikeret role map afbryder transaktionen

Det detaljerede overload returnerer desuden fund fra før reparationen, annoteret som crsApplied, crsUnresolved, crsRolledBack eller crsFailed, plus optalte resuméer for hver reparationsfamilie

Dette provenans-overload udfører en ekstra afgrænset valideringsomgang før reparationen; brug det eksisterende overload med tre outputs, når kun slutrapport og problemer skal bruges

Atomicitet og sikkerhed

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;

Relaterede API'er