THotPDF.RepairPDFUA2Structure Method
Popravlja povratljive nedostatke PDF/UA-2 prostora naziva, atributa, strukture i pristupačnosti unutar copy-on-write grafske transakcije te validira kandidatski graf prije 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;
Jedinica
HPDFDoc
Mogućnosti popravka
Krenite od THPDFUA2RepairOptions.Default i mijenjajte samo odluke politike koje zahtijeva ulazni tijek rada
| Polje | Svrha |
|---|---|
NormalizeDuplicateNamespaces | Obnavlja StructTreeRoot/Namespaces s jednim kanonskim neizravnim rječnikom po URI-ju i odbacuje sukobljene mape uloga |
RegisterReferencedNamespaces | Registrira valjane rječnike prostora naziva koje referenciraju strukturni elementi, atributi ili mape uloga osviještene o prostorima naziva |
RepairStandardStructureNamespaces | Standardnim ulogama dodjeljuje PDF 2.0 prostor naziva kad prostor nedostaje ili je nevažeći te uvijek normalizira vrhunjski Document |
RepairAttributeNamespaces | Kanonizira reference prostora naziva atributa i uklanja nevažeće stavke prostora naziva iz standardnih vlasnika |
RepairAttributeRevisions | Normalizira negativne ili frakcijske brojeve revizija i uklanja siročadne revizijske stavke iz polja atributa |
RepairListSemantics | Normalizira numeriranje, zastavice nastavka, nevažeće tipove nastavka i jedan pogrešno smješten caption bez izmišljanja sadržaja popisa |
RepairTableSemantics | Normalizira nevažeće raspone i opsege, uklanja nevažeće lokalne reference zaglavlja tablice i premješta jedan pogrešno smješten caption |
RepairRubyWarichuSequences | Raspoređuje djecu samo kad je točno traženi multiskup uloga već prisutan |
RepairPronunciationHints | Uklanja pogrešno tipizirane savjete, prorjeđuje nevažeće reference leksikona i normalizira ugrađene PLS MIME podtipove |
RepairMissingAlternateText | Obnavlja nedostajući Alt za Figure, Formula i Form iz postojećeg naslova, proširenog teksta, teksta izdvojenog iz istog MCID-a ili izričitog pričuvnog rješenja, tim redoslijedom |
RepairLanguageInheritance | Podiže valjani jezik strukturnog korijena ili izričiti zadani jezik u Catalog te uklanja nevažeće ili suvišne jezične stavke razine strukture kad je nasljeđivanje nedvosmisleno |
RepairHeadingOrder | Prenumerira samo nedostatke prvog naslova i preskočenih razina uz zadržavanje redoslijeda dokumenta |
RepairArtifactTagging | Prepisuje place i marked-content oznake povezane sa strukturnim elementom Artifact za sadržaj proizvođača i učitane stranice |
AllowDocumentFragmentHeadingStarts | Resetira kontekst naslova unutar svakog DocumentFragment-a za popravak i validaciju nakon popravka |
RollbackOnValidationFailure | Vraća izvorni graf kad nakon popravka ostane bila koja PDF/UA-2 greška |
CustomAttributeNamespaceURI | Dostavlja izričiti prostor naziva za prilagođene vlasnike atributa čiju semantiku nije moguće sigurno zaključiti, s praznom zadana vrijednošću koja ne uspijeva sigurno |
DefaultLanguage | Dostavlja BCP-47 jezičnu oznaku samo kad ni Catalog ni strukturni korijen ne sadrže valjani jezik |
FallbackAlternateText | Dostavlja alternativni tekst koji je pregledao pozivatelj nakon što zakažu svi izvori iz dokumenta, s praznom zadana vrijednošću koja nikada ne izmišlja opis |
MaxGeneratedAlternateTextCharacters | Ograničava izdvajanje teksta iz istog MCID-a i standardno iznosi 4.096 UTF-16 kodnih jedinica |
MaxObjects | Ograničava skeniranje grafa objekata i standardno iznosi 1.000.000 objekata |
MaxRepairs | Ograničava zadržane promjene i standardno iznosi 100.000 operacija popravka |
Izvješće o popravku
THPDFUA2RepairReport izvješćuje je li se graf promijenio ili povukao, je li prekoračeno ograničenje, status validacije nakon popravka, pregledane objekte, preostale greške i brojače za svaku obitelj popravaka uključujući alternativni tekst, jezične stavke, razine naslova i Artifact oznake
UnresolvedAlternateTextCount, UnresolvedLanguageCount i UnresolvedArtifactCount razlikuju semantiku koja još zahtijeva autorov pregled od automatskih mutacija
Vraćeno polje THPDFUA2ValidationIssues sadrži dijagnostiku nakon popravka kad validacija ne uspije te stabilnu dijagnostiku specifičnu za popravak kad ograničenje resursa ili sukobljena duplicirana mapa uloga prekine transakciju
Detaljni overload također vraća nalaze prije popravka označene kao crsApplied, crsUnresolved, crsRolledBack ili crsFailed, uz zbrojene sažetke za svaku obitelj popravaka
Ovaj overload s izvorom izvodi dodatnu ograničenu validaciju prije popravka; koristite postojeći overload s tri izlaza kad su potrebni samo konačno izvješće i problemi
Atomskost i sigurnost
- Svaka mutacija sudjeluje u transakciji grafa dokumenta, uključujući novo dodijeljene neizravne rječnike prostora naziva
- Duplicirani rječnici prostora naziva spajaju se samo kad se njihova mapiranja uloga podudaraju
- Semantika prilagođenih atributa nikada se ne izmišlja osim ako
CustomAttributeNamespaceURInije izričito dostavljen - Alternativni tekst nikada se ne izmišlja osim ako
FallbackAlternateTextnije izričito dostavljen - Preinake sadržaja stranice proizvođača odgađaju se dok validacija ne uspije, dok učitane preinake tokova ostaju unutar grafske transakcije
- Dvosmislena tablična presjecišta, nedostajuća strukturna djeca, sukobljeni ID-ovi, neriješeni ciljevi nastavka i odsutna semantika zaglavlja nikada se ne pogađaju
- Zadana politika vraća cijeli popravak kad preostanu nepovezane PDF/UA-2 greške
- Učitani grafovi i grafovi na strani proizvođača koriste isti ograničeni put validacije i popravka
Primjer
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;