THotPDF.RepairPDFUA2Structure Method
Korjaa palautettavat PDF/UA-2-nimiavaruus-, attribuutti-, rakenne- ja saavutettavuusvikat copy-on-write-rakennetransaktion sisällä ja validoi ehdokasrakenteen ennen sitoutumista
Määrittely
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;
Yksikkö
HPDFDoc
Korjausasetukset
Aloita THPDFUA2RepairOptions.Default:sta ja ohita vain syöttötyönkulun edellyttämät käytäntöpäätökset
| Kenttä | Tarkoitus |
|---|---|
NormalizeDuplicateNamespaces | Rakentaa StructTreeRoot/Namespaces -kohdan uudelleen yhdellä kanonisella epäsuoralla sanakirjalla URI:a kohden ja hylkää ristiriitaiset roolikartat |
RegisterReferencedNamespaces | Rekisteröi kelvolliset nimiavaruussanakirjat, joihin rakenteen elementit, attribuutit tai nimiavaruustietoiset roolikartat viittaavat |
RepairStandardStructureNamespaces | Määrittää PDF 2.0 -nimiavaruuden vakiorooleihin, kun nimiavaruus puuttuu tai on virheellinen, ja normalisoi aina ylimmän tason Document-kohdan |
RepairAttributeNamespaces | Kanonisoi attribuutin nimiavaruusviittaukset ja poistaa virheelliset nimiavaruusmerkinnät vakiovoimista |
RepairAttributeRevisions | Normalisoi negatiiviset tai murto-osaiset revisionumerot ja poistaa orporevisiomerkinnät attribuuttitaulukoista |
RepairListSemantics | Normalisoi numeroinnin, jatkoflagit, virheelliset jatkot ja yksittäisen väärän otsikon luomatta listasisältöä |
RepairTableSemantics | Normalisoi virheelliset jatkeet ja laajuudet, poistaa virheelliset taulukkolokaaliset otsikkoviittaukset ja siirtää yksittäisen väärän otsikon |
RepairRubyWarichuSequences | Järjestää lapset uudelleen vain, kun vaadittu roolijoukko on jo täsmälleen läsnä |
RepairPronunciationHints | Poistaa väärin kirjoitetut vihjeet, rajaa virheelliset sanastoviittaukset ja normalisoi upotetut PLS-MIME-alatyypit |
RepairMissingAlternateText | Palauttaa puuttuvan Alt-kohdan Figure-, Formula- ja Form-kohteille olemassa olevasta otsikosta, laajennustekstistä, saman MCID:n eritetystä tekstistä tai eksplisiittisestä varatekstistä tässä järjestyksessä |
RepairLanguageInheritance | Edistää kelvollisen rakenteen juuren tai eksplisiittisen oletuskielen Catalog-kohdalle ja poistaa virheelliset tai turhat rakennetason kielimerkinnät, kun periytyminen on yksiselitteinen |
RepairHeadingOrder | Numeroi uudelleen vain ensimmäisissä otsikoissa ja ohitettujen tasojen viat säilyttäen dokumentin järjestyksen |
RepairArtifactTagging | Kirjoittaa uudelleen Artifact-rakenneselementtiin liittyvät merkitty-sisältötagit tuottajan ja ladattujen sivujen sisällölle |
AllowDocumentFragmentHeadingStarts | Nollaa otsikkokontekstin jokaisen DocumentFragment-kohdan sisällä sekä korjaukselle että korjauksen jälkeiselle validoinnille |
RollbackOnValidationFailure | Palauttaa alkuperäisen rakenteen, kun PDF/UA-2-virhe jää korjauksen jälkeen |
CustomAttributeNamespaceURI | Toimittaa eksplisiittisen nimiavaruuden mukautetuille attribuutin omistajille, joiden semantiikkaa ei voida turvallisesti päätellä; tyhjä oletus epäonnistuu suljetusti |
DefaultLanguage | Toimittaa BCP-47-kielitunnisteen vain, kun Catalog eikä rakenteen juuret sisällä kelvollista kieltä |
FallbackAlternateText | Toimittaa kutsujan tarkistaman vaihtoehtoisen tekstin sen jälkeen, kun kaikki dokumenttijohdannaiset lähteet epäonnistuivat; tyhjä oletus ei koskaan keksi kuvausta |
MaxGeneratedAlternateTextCharacters | Raja saman MCID:n tekstin erittämisen ja oletusarvo on 4 096 UTF-16-koodiyksikköä |
MaxObjects | Raja objektirakenteen skannauksen ja oletusarvo on 1 000 000 objektia |
MaxRepairs | Raja säilytettyjen mutaatioiden ja oletusarvo on 100 000 korjaustoimintoa |
Korjausraportti
THPDFUA2RepairReport kertoo, muuttuiko rakenne vai palautuiko se takaisin, ylitettiinkö raja, korjauksen jälkeisen validoinnin tilan, tutkitut objektit, jäljellä olevat virheet ja laskurit jokaiselle korjausperheelle, mukaan lukien vaihtoehtoinen teksti, kielimerkinnät, otsikkotasot ja Artifact-tagit
UnresolvedAlternateTextCount, UnresolvedLanguageCount ja UnresolvedArtifactCount erottavat semantiikan, joka vaatii edelleen kirjoittajan tarkistusta, automaattisista mutaatioista
Palautettu THPDFUA2ValidationIssues-taulukko sisältää korjauksen jälkeiset diagnostiikat, kun validointi epäonnistuu, ja vakaat korjauskohtaiset diagnostiikat, kun resurssiraja tai ristiriitainen kaksoisroolikartta keskeyttää transaktion
Yksityiskohtainen ylikuormitus palauttaa myös korjausta edeltävät havainnot, jotka on merkitty crsApplied, crsUnresolved, crsRolledBack tai crsFailed, sekä lasketut yhteenvedot kullekin korjausperheelle
Tämä alkuperäisyys-ylikuormitus suorittaa ylimääräisen rajatun korjausta edeltävän validointikierroksen; käytä olemassa olevaa kolmen tuloksen ylikuormitusta, kun tarvitaan vain lopullinen raportti ja ongelmat
Atomisuus ja turvallisuus
- Jokainen mutaatio osallistuu dokumentin rakenne-transaktioon, mukaan lukien uudet varatut epäsuorat nimiavaruussanakirjat
- Kaksoisnimiavaruussanakirjat yhdistetään vain, kun niiden roolikartoitukset ovat yhtäpitäviä
- Mukautetun attribuutin semantiikkaa ei koskaan keksitä, ellei
CustomAttributeNamespaceURI-arvoa ole eksplisiittisesti annettu - Vaihtoehtoista tekstiä ei koskaan keksitä, ellei
FallbackAlternateText-arvoa ole eksplisiittisesti annettu - Tuottajan sivusisältömuokkaukset vaiheistetaan, kunnes validointi onnistuu, kun ladattujen virtojen muokkaukset pysyvät rakenne-transaktion sisällä
- Epäselviä taulukon leikkauskohtia, puuttuvia rakenteellisia lapsia, ristiriitaisia tunnuksia, ratkaisemattomia jatkotavoitteita ja puuttuvaa otsikkosemantiikkaa ei koskaan arvata
- Oletuskäytäntö palauttaa koko korjauksen, kun toisiinsa liittymättömät PDF/UA-2-virheet jäävät
- Ladatut ja tuottajan puolen rakenteet käyttävät samaa rajattua validointi- ja korjauspolkua
Esimerkki
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;