THotPDF.RepairPDFUA2Structure Method
Popravi obnovljive napake imenskih prostorov, atributov, struktur in dostopnosti PDF/UA-2 znotraj transakcije grafa s kopiranjem ob pisanju in preveri kandidatni graf pred potrditvijo
Declaration
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
Repair options
Začnite s THPDFUA2RepairOptions.Default in preglasite samo odločitve politik, ki jih zahteva vhodni delovni tok
| Field | Purpose |
|---|---|
NormalizeDuplicateNamespaces | Ponovno zgradi StructTreeRoot/Namespaces z enim kanoničnim posrednim slovarjem na URI in zavrne nasprotujoče si zemljevide vlog |
RegisterReferencedNamespaces | Registrira veljavne slovarje imenskih prostorov, na katere se sklicujejo strukturni elementi, atributi ali zemljevidi vlog, ozaveščeni o imenskih prostorih |
RepairStandardStructureNamespaces | Dodeli imenski prostor PDF 2.0 standardnim vlogam, ko imenski prostor manjka ali je neveljaven, in vedno normalizira najvišji Document |
RepairAttributeNamespaces | Kanoničizira sklice na imenske prostore atributov in odstrani neveljavne vnose imenskih prostorov iz standardnih lastnikov |
RepairAttributeRevisions | Normalizira negativne ali delne številke revizij in odstrani osirotele vnose revizij iz polj atributov |
RepairListSemantics | Normalizira oštevilčenje, zastavice nadaljevanja, neveljavne vrste nadaljevanja in en sam napačno postavljen napis brez izmišljanja vsebine seznama |
RepairTableSemantics | Normalizira neveljavne razpone in obsege, odstrani neveljavne lokalne sklice glav tabel in premakne en sam napačno postavljen napis |
RepairRubyWarichuSequences | Preuredi otroke samo, ko je točno zahtevani multiset vlog že prisoten |
RepairPronunciationHints | Odstrani napačno tipizirane namige, obreže neveljavne sklice leksikonov in normalizira vgrajene podtipe MIME PLS |
RepairMissingAlternateText | Obnovi manjkajoči Alt za Figure, Formula in Form iz obstoječega naslova, razširitvenega besedila, izluščenega besedila istega MCID ali eksplicitnega nadomestila v tem vrstnem redu |
RepairLanguageInheritance | Povzdigne veljaven jezik strukture korenine ali eksplicitni privzeti jezik v Catalog in odstrani neveljavne ali odvečne vnose jezikov na ravni strukture, ko je dedovanje nedvoumno |
RepairHeadingOrder | Ponovno oštevilči samo napake prvega naslova in preskočenih ravni, medtem ko ohrani vrstni red dokumenta |
RepairArtifactTagging | Ponovno zapiše oznake označene vsebine, povezane s strukturnim elementom Artifact, za vsebino proizvajalca in naložene strani |
AllowDocumentFragmentHeadingStarts | Ponastavi kontekst naslovov znotraj vsakega DocumentFragment za popravilo in preverjanje po popravilu |
RollbackOnValidationFailure | Obnovi prvotni graf, ko po popravilu ostane katera koli napaka PDF/UA-2 |
CustomAttributeNamespaceURI | Zagotovi eksplicitni imenski prostor za lastnike lastnih atributov, katerih semantike ni mogoče varno sklepati, s prazno privzeto vrednostjo, ki ne uspe varno |
DefaultLanguage | Zagotovi oznako jezika BCP-47 samo, ko niti Catalog niti strukturna korenina ne vsebujeta veljavnega jezika |
FallbackAlternateText | Zagotovi nadomestno besedilo, ki ga pregleda klicatelj, po tem ko vsi viri iz dokumenta spodletijo, s prazno privzeto vrednostjo, ki nikoli ne izmisli opisa |
MaxGeneratedAlternateTextCharacters | Omeji izluščevanje besedila istega MCID in privzeto znaša 4.096 kodnih enot UTF-16 |
MaxObjects | Omeji skeniranje grafa objektov in privzeto znaša 1.000.000 objektov |
MaxRepairs | Omeji zadržane mutacije in privzeto znaša 100.000 operacij popravil |
Repair report
THPDFUA2RepairReport poroča o tem, ali se je graf spremenil ali razveljavil, ali je bila presežena meja, statusu preverjanja po popravilu, pregledanih objektih, preostalih napakah in številih za vsako družino popravil, vključno z nadomestnim besedilom, vnosi jezikov, ravnmi naslovov in oznakami Artifact
UnresolvedAlternateTextCount, UnresolvedLanguageCount in UnresolvedArtifactCount ločijo semantike, ki še vedno zahtevajo pregled avtorja, od samodejnih mutacij
Vrnjeno polje THPDFUA2ValidationIssues vsebuje diagnostiko po popravilu, ko preverjanje spodleti, in stabilno diagnostiko, specifično za popravilo, ko presežena meja virov ali nasprotujoči si podvojeni zemljevid vlog prekine transakcijo
Podrobna preobtežitev vrne tudi ugotovitve pred popravilom, označene kot crsApplied, crsUnresolved, crsRolledBack ali crsFailed, plus štete povzetke za vsako družino popravil
Ta preobtežitev izvora izvede dodatni omejeni prehod preverjanja pred popravilom; uporabite obstoječo preobtežitev s tremi izhodi, ko sta potrebna samo končno poročilo in težave
Atomicity and safety
- Vsaka mutacija sodeluje v transakciji grafa dokumenta, vključno z na novo dodeljenimi posrednimi slovarji imenskih prostorov
- Podvojeni slovarji imenskih prostorov so združeni samo, ko se njihovi zemljevidi vlog ujemajo
- Semantike lastnih atributov niso nikoli izmišljene, razen če je
CustomAttributeNamespaceURIeksplicitno dobavljen - Nadomestno besedilo ni nikoli izmišljeno, razen če je
FallbackAlternateTexteksplicitno dobavljen - Urejanja vsebine strani proizvajalca so pripravljena, dokler preverjanje ne uspe, medtem ko urejanja naloženih tokov ostanejo znotraj transakcije grafa
- Dvoumna presečišča tabel, manjkajoči strukturni otroci, nasprotujoči si ID-ji, nerazrešeni cilji nadaljevanja in odsotna semantika glav niso nikoli ugibani
- Privzeta politika razveljavi celotno popravilo, ko ostanejo nepovezane napake PDF/UA-2
- Grafa naložene in proizvajalčeve strani uporabljata isto omejeno pot preverjanja in popravil
Example
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;