THotPDF.RepairPDFUA2Structure Method

Popravlja obnovljive PDF/UA-2 defekte imenskih prostora, atributa, strukture i pristupačnosti unutar copy-on-write transakcije grafa i validira kandidat-graf pre potvrde

Deklaracija

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

Opcije popravke

Kreni od THPDFUA2RepairOptions.Default i predefiniši samo one odluke politike koje input workflow zahteva

PoljeSvrha
NormalizeDuplicateNamespacesPonovo gradi StructTreeRoot/Namespaces sa jednim kanonskim indirektnim rečnikom po URI-ju i odbaja konfliktne role mape
RegisterReferencedNamespacesRegistruje važeće namespace rečnike na koje referenciraju elementi strukture, atributi ili role mape svesne imenskih prostora
RepairStandardStructureNamespacesDodeljuje PDF 2.0 namespace standardnim rolama kada namespace nedostaje ili je nevažeći, i uvek normalizuje najviši nivo Document
RepairAttributeNamespacesKanonizuje reference atributa na namespace i uklanja nevažeće namespace unose sa standardnih vlasnika
RepairAttributeRevisionsNormalizuje negativne ili razlomljene brojeve revizija i uklanja orphan revizione unose iz nizova atributa
RepairListSemanticsNormalizuje numerisanje, continuation zastavice, nevažeće continuation tipove i jedan pogrešno smesten caption, bez izmišljanja sadržaja liste
RepairTableSemanticsNormalizuje nevažeće span i scope vrednosti, uklanja nevažeće reference na header-e lokalne za tabelu i premešta jedan pogrešno smesten caption
RepairRubyWarichuSequencesPreuređuje decu samo kada tačno traženi multiset rola već postoji
RepairPronunciationHintsUklanja hintove pogrešnog tipa, čisti nevažeće reference na leksikone i normalizuje ugrađene PLS MIME podtipove
RepairMissingAlternateTextVraća nedostajući Alt za Figure, Formula i Form iz postojećeg naslova, expansion teksta, izdvojenog teksta istog MCID-a ili eksplicitnog fallback-a, baš tim redosledom
RepairLanguageInheritancePromoviše važeći jezik strukturnog korena ili eksplicitan podrazumevani jezik u Catalog i uklanja nevažeće ili suvišne jezičke unose na nivou strukture kada je nasleđivanje nedvosmisleno
RepairHeadingOrderPonovo numeriše samo defekte prvog naslova i preskočenih nivoa, uz zadržavanje redosleda dokumenta
RepairArtifactTaggingPrepisuje marked-content tagove vezane za Artifact element strukture za producer i učitani sadržaj stranica
AllowDocumentFragmentHeadingStartsResetuje kontekst naslova unutar svakog DocumentFragment, i za popravku i za validaciju posle nje
RollbackOnValidationFailureVraća originalni graf kada bilo koja PDF/UA-2 greška ostane nakon popravke
CustomAttributeNamespaceURIDostavlja eksplicitan namespace za vlasnike custom atributa čija se semantika ne može sigurno zaključiti, uz podrazumevanu praznu vrednost koja bezbedno prekida rad
DefaultLanguageDostavlja BCP-47 jezički tag samo kada ni Catalog ni strukturni koren ne sadrže važeći jezik
FallbackAlternateTextDostavlja alternate tekst koji je pozivalac pregledao nakon što svi izvori iz dokumenta otpadnu, uz podrazumevanu praznu vrednost koja nikada ne izmišlja opis
MaxGeneratedAlternateTextCharactersOgraničava izdvajanje teksta istog MCID-a, podrazumevano 4.096 UTF-16 code units
MaxObjectsOgraničava skeniranje grafa objekata, podrazumevano 1.000.000 objekata
MaxRepairsOgraničava zadržane mutacije, podrazumevano 100.000 operacija popravke

Izveštaj o popravci

THPDFUA2RepairReport izveštava da li je graf promenjen ili vraćen, da li je prekoračen neki limit, status validacije posle popravke, pregledane objekte, preostale greške i brojače za svaku familiju popravki, uključujući alternate tekst, jezičke unose, nivoe naslova i Artifact tagove

UnresolvedAlternateTextCount, UnresolvedLanguageCount i UnresolvedArtifactCount razdvajaju semantiku koja još traži pregled autora od automatskih mutacija

Vraćeni niz THPDFUA2ValidationIssues sadrži dijagnostiku posle popravke kada validacija ne uspe, i stabilnu dijagnostiku specifičnu za popravku kada resursni limit ili konfliktne duplirane role mape prekinu transakciju

Detaljni overload vraća i nalaze pre popravke označene kao crsApplied, crsUnresolved, crsRolledBack ili crsFailed, plus sume sa brojačima za svaku familiju popravki

Ovaj overload sa podacima o poreklu izvršava dodatni ograničeni validacioni prolaz pre popravke; koristi postojeći overload sa tri izlaza kada su potrebni samo konačni izveštaj i problemi

Atomskost i bezbednost

Primer

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;

Povezani API-ji