THotPDF.RepairPDFUA2Structure Method
Remontuoja atkuriamus PDF/UA-2 vardų srities, atributo, struktūros ir prieinamumo defektus copy-on-write diagramos transakcijoje ir prieš įtvirtindama patvirtina kandidatinį grafiką
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;
Vienetas
HPDFDoc
Remonto parinktys
Pradėkite nuo THPDFUA2RepairOptions.Default ir keiskite tik tuos politikos sprendimus, kurių reikalauja įvesties darbo eiga
| Laukas | Paskirtis |
|---|---|
NormalizeDuplicateNamespaces | Atkuria StructTreeRoot/Namespaces su vienu kanoniniu netiesioginiu žodynu kiekvienai URI ir atmeta konfliktuojančius vaidmenų atvaizdavimus |
RegisterReferencedNamespaces | Registruoja struktūros elementų, atributų arba vardų sritims jautrių vaidmenų atvaizdavimų referuojamus galiojančius vardų srities žodynus |
RepairStandardStructureNamespaces | Priskiria PDF 2.0 vardų sritį standartiniams vaidmenims, kai vardų srities nėra arba ji negalioja, ir visada normalizuoja aukščiausiojo lygio Document |
RepairAttributeNamespaces | Kanonizuoja atributo vardų srities nuorodas ir pašalina negaliojančius vardų srities įrašus iš standartinių savininkų |
RepairAttributeRevisions | Normalizuoja neigiamus arba trupmeninius versijos numerius ir pašalina našlaičius versijos įrašus iš atributo masyvų |
RepairListSemantics | Normalizuoja numeravimą, tęsinio vėliavėles, negaliojančius tęsinio tipus ir vieną netinkamai nukeltą antraštę, neprasimanydamas sąrašo turinio |
RepairTableSemantics | Normalizuoja negaliojančius apimties ir srities įrašus, pašalina negaliojančias lentelės lokalių antraščių nuorodas ir perkelia vieną netinkamai nukeltą antraštę |
RepairRubyWarichuSequences | Pertvarko vaikus tik tada, kai tiksli reikalinga vaidmenų multiaibė jau yra |
RepairPronunciationHints | Pašalina netinkamai įvestas užuominas, apgeni negaliojančias leksikos nuorodas ir normalizuoja įterptus PLS MIME potipius |
RepairMissingAlternateText | Atkuria trūkstamą Alt, skirtą Figure, Formula ir Form, iš esamos antraštės, išplėstinio teksto, to paties MCID ištraukto teksto arba aiškios atsarginės reikšmės, tokia tvarka |
RepairLanguageInheritance | Perkelia galiojančią struktūros šaknies arba aiškią numatytąją kalbą į Catalog ir pašalina negaliojančius arba perteklinius struktūros lygio kalbos įrašus, kai paveldėjimas yra vienareikšmis |
RepairHeadingOrder | Pernumeruoja tik pirmosios antraštės ir praleistų lygių trūkumus, išlaikydamas dokumento tvarką |
RepairArtifactTagging | Perrašo žymėto turinio žymes, susietas su Artifact struktūros elementu, skirtą gamintojo ir įkelto puslapio turiniui |
AllowDocumentFragmentHeadingStarts | Atstato antraštės kontekstą kiekviename DocumentFragment ir remontui, ir patikrai po remonto |
RollbackOnValidationFailure | Atkuria pradinį grafiką, kai po remonto lieka bent viena PDF/UA-2 klaida |
CustomAttributeNamespaceURI | Pateikia aiškią vardų sritį pasirinktinių atributų savininkams, kurių semantikos negalima saugiai nustatyti, o tuščia numatytoji reikšmė nepavyksta saugiai |
DefaultLanguage | Pateikia BCP-47 kalbos žymę tik tada, kai nei Catalog, nei struktūros šaknis neturi galiojančios kalbos |
FallbackAlternateText | Pateikia skambintojo peržiūrėtą alternatyvų tekstą, kai nepavyksta visi iš dokumento gauti šaltiniai, o tuščia numatytoji reikšmė niekada nefalsifikuoja aprašymo |
MaxGeneratedAlternateTextCharacters | Apriboja to paties MCID teksto ištraukimą ir pagal numatymą yra 4 096 UTF-16 kodo vienetai |
MaxObjects | Apriboja objektų grafiko skenavimą ir pagal numatymą yra 1 000 000 objektų |
MaxRepairs | Apriboja išlaikytus pakeitimus ir pagal numatymą yra 100 000 remonto operacijų |
Remonto ataskaita
THPDFUA2RepairReport praneša, ar grafikas pasikeitė arba buvo atšauktas, ar viršyta riba, patikros po remonto būseną, ištirtus objektus, likusias klaidas ir kiekvienos remonto šeimos skaičius, įskaitant alternatyvų tekstą, kalbos įrašus, antraštės lygius ir Artifact žymes
UnresolvedAlternateTextCount, UnresolvedLanguageCount ir UnresolvedArtifactCount atskiria semantiką, kuriai vis dar reikia autoriaus peržiūros, nuo automatinių pakeitimų
Grąžinamas THPDFUA2ValidationIssues masyvas saugo diagnostiką po remonto, kai patikra nepavyksta, ir stabilią remontui būdingą diagnostiką, kai išteklių riba arba konfliktuojantis pasikartojančio vaidmens atvaizdavimas nutraukia transakciją
Išsamus variantas taip pat grąžina radinius prieš remontą, pažymėtus kaip crsApplied, crsUnresolved, crsRolledBack arba crsFailed, bei sukauptas kiekvienos remonto šeimos suvestines
Šis kilmės variantas atlieka papildomą ribotą patikros etapą prieš remontą; naudokite esamą trijų rezultatų variantą, kai reikalingi tik galutinė ataskaita ir problemos
Atomiškumas ir saugumas
- Kiekvienas pakeitimas dalyvauja dokumento grafiko transakcijoje, įskaitant naujai skiriamus netiesioginius vardų srities žodynus
- Pasikartojantys vardų srities žodynai sujungiami tik tada, kai jų vaidmenų atvaizdavimai sutampa
- Pasirinktinių atributų semantika niekada nekuriama, nebent
CustomAttributeNamespaceURIpateikiamas aiškiai - Alternatyvus tekstas niekada nefalsifikuojamas, nebent
FallbackAlternateTextpateikiamas aiškiai - Gamintojo puslapio turinio pakeitimai sulaikomi, kol patikra sėkminga, o įkeltų srautų pakeitimai lieka objekto grafiko transakcijoje
- Nevienareikšmės lentelės sankirtos, trūkstami struktūros vaikai, konfliktuojantys ID, neišspręsti tęsinio tikslai ir nebuvusios antraštės semantika niekada nėra spėjami
- Numatytoji politika atšaukia visą remontą, kai lieka nesusijusių PDF/UA-2 klaidų
- Įkeltas ir gamintojo pusės grafikai naudoja tą patį ribotos patikros ir remonto kelią
Pavyzdys
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;