PDF/UA-2 Structure Authoring, Validation, and Repair
HotPDF dokáže vytvárať, overovať a atómovo opravovať zmiešanú sémantiku štruktúry PDF 1.7 a PDF 2.0 pri zachovaní explicitnej identity menného priestoru a ohraničených nákladov na spracovanie
Vytváranie s ohľadom na menné priestory
AddStructureElement priradí štandardný menný priestor štruktúry PDF 2.0, keď to vyžaduje rola PDF/UA-2, vrátane povinného prvku najvyššej úrovne Document
AddStructureElementNS vytvára explicitne menované prvky a AddStructRoleMapNS pridáva mapovania názvov alebo dvojprvkových polí, ktoré sa môžu riešiť tranzitívne naprieč hranicami menných priestorov
Slovníky menných priestorov sú nepriame, registrované raz podľa URI a emitované cez StructTreeRoot/Namespaces
Atribúty a sémantické pomocníky
| API | Účel |
|---|---|
SetStructureAttributeName | Pridáva alebo nahrádza atribút s hodnotou názvu v slovníku špecifickom pre vlastníka a môže viazať vlastných vlastníkov na menný priestor |
SetStructureAttributeNumber | Pridáva alebo nahrádza štruktúrny atribút s celočíselnou hodnotou, napríklad RowSpan alebo ColSpan |
SetStructureTableCellHeaders | Zapisuje neprázdne pole Headers, ktoré identifikuje hlavičkové bunky tabuľky podľa jedinečných hodnôt ID |
SetStructurePronunciation | Zapisuje zdedený názov PhoneticAlphabet a presnú náhradu Phoneme na prvok štruktúry PDF 2.0 |
AddPronunciationLexicon | Vkladá nepriamy súbor application/pls+xml a pripája jeho Filespec k StructTreeRoot/PronunciationLexicon v poradí vyhľadávania |
AssociateFileWithStructure | Spája nepriamy Filespec s prvkom štruktúry cez AF |
AddAccessibleFormula | Vytvára Formula s Alt, ActualText alebo oboma |
AddAccessibleMathMLFormula | Vytvára vzorec, vkladá opísaný súbor application/mathml+xml, spája ho so štruktúrou a pridáva dieťa menného priestoru MathML |
Ohraničená jednoprechodová validácia
ValidatePDFUA2Structure vracia každý uchovaný diagnostický záznam v poli THPDFUA2ValidationIssues a vracia False, keď má aspoň jeden diagnostický záznam závažnosť uisError
Validátor rieši mapy rolí s ohľadom na menné priestory s detekciou cyklov a kontroluje dokument najvyššej úrovne, hierarchiu rodič-dieťa, spätné odkazy rodičov, vlastníkov a revízie atribútov, StructParent anotácií, vlastníctvo stromu rodičov a OBJR, pripojené súbory, nadpisy, zoznamy, tabuľky, Ruby, Warichu, nápovedy výslovnosti, vzorce a MathML
Validácia tabuliek rozširuje kladné rozpätia riadkov a stĺpcov iba v rámci MaxObjects, odmieta pretínajúce sa bunky a nepravidelnú geometriu riadkov alebo skupín riadkov, rieši Headers v rámci vlastniacej tabuľky, deteguje duplicitné, vlastné a cyklické referencie hlavičiek a prijíma implicitné asociácie len vtedy, keď ich určuje Scope alebo umiestnenie prvého riadku a prvého stĺpca
Validácia zoznamov rozpoznáva úplnú množinu ListNumbering PDF 2.0, vynucuje sémantiku popiskov, kontroluje ContinuedList a usporiadané referencie ContinuedFrom na rovnakej úrovni a odmieta cykly pokračovania alebo priamy reálny obsah mimo Lbl a LBody
Deti Ruby musia byť RB,RT alebo RB,RP,RT,RP, deti Warichu musia byť WP,WT,WP, položky výslovnosti si zachovávajú svoje typy objektov PDF a každý lexikón výslovnosti musí byť nepriamy vložený Filespec PLS
Skenovanie nepriamych objektov, hĺbka prechodu, hĺbka máp rolí, rozšírené bunky tabuliek, počet uchovaných problémov a spracovanie nepriateľských kolekcií sú ohraničené, takže validácia zostáva predvídateľná pre nedôveryhodné stromy štruktúry
Zdieľané nálezy zhody
Preťaženie validácie THPDFComplianceFindings vracia rovnaké diagnostické záznamy so zdieľaným profilom, závažnosťou, stabilným ID pravidla, klauzulou normy, logickou cestou, číslom nepriameho objektu a indexom stránky s nulovým základom
Podrobné preťaženie opravy porovnáva ohraničené nálezy pred opravou a po oprave, aby identifikovalo aplikované, nevyriešené, vrátené alebo zlyhané akcie opravy, a pripája zhrnutia rodín opráv s počtami
ComplianceFindingsToJSON zachováva deterministické poradie pod schémou verzovanou hotpdf.compliance.findings.v1 a reprezentuje neznáme umiestnenia objektov alebo stránok ako null
Atómová oprava štruktúry
RepairPDFUA2Structure beží v transakcii grafu s kopírovaním pri zápise, kanonizuje duplicitné alebo neregistrované slovníky menných priestorov, prepisuje referencie menných priestorov štruktúry a máp rolí, opravuje štandardné menné priestory štruktúry, normalizuje menné priestory a revízie atribútov štruktúry a opravuje deterministické defekty zoznamov, tabuliek, Ruby, Warichu, výslovnosti, alternatívneho textu, dedenia jazyka, poradia nadpisov a značiek Artifact
Po mutácii rovnaký validátor kontroluje kandidátsky graf a predvolená politika vráti každú zmenu, keď zostane akákoľvek chyba PDF/UA-2
- Duplicitné URI menných priestorov sa zbalia do jedného nepriameho slovníka len vtedy, keď sa ich mapovania rolí s ohľadom na menné priestory zhodujú
- Platné odkazované menné priestory možno registrovať bez opakovaného skenovania stromu štruktúry
- Štandardní vlastníci atribútov zhadzujú neplatné položky menných priestorov, zatiaľ čo vlastní vlastníci vyžadujú explicitné
CustomAttributeNamespaceURI, keď ich menný priestor nemožno odvodiť - Záporné alebo zlomkové revízie prvkov sa stanú nulou, neplatné revízie polí atribútov sa stanú nulou a osirelé položky revízií sa odstránia
- Rozpoznateľné číslovanie zoznamov sa obnoví, zoznamy s popiskami dostanú sémantiku číslovania inú ako
None, platné referencie pokračovania dostanúContinuedList=truea jediný nesprávne umiestnený popisok sa presunie na prvú pozíciu - Neplatné rozpätia tabuliek sa stanú jednou,
Scopesa odstráni z dátových buniek a neplatné, cez tabuľky, vlastné alebo duplicitné položkyHeaderssa odstránia bez vymýšľania náhradných asociácií - Deti Ruby a Warichu sa preusporiadajú len vtedy, keď presná požadovaná multiset už existuje
- Nesprávne typované nápovedy výslovnosti sa odstránia, neplatné referencie lexikónov sa orezajú a platné vložené prúdy lexikónov dostanú MIME podtyp PLS
- Chýbajúce hodnoty
Altpoužívajú existujúci názov, text rozšírenia alebo extrahovaný text s rovnakým MCID pred akýmkoľvek fallbackom dodaným volajúcim a prázdna predvolená hodnota nikdy nevymýšľa opisy - Platný koreňový jazyk alebo jazyk BCP-47 dodaný volajúcim sa môže stať jazykom katalógu, takže nadbytočné alebo neplatné položky potomkov dedia bezpečne
- Defekty prvého nadpisu a preskočených úrovní sa uzatvárajú v poradí dokumentu s voliteľnými nezávislými začiatkami nadpisov v rámci
DocumentFragment - Roly štruktúry
Artifactsa zosúlaďujú so svojimi značkami označeného obsahu v obsahu stránky producenta a načítaných prúdoch obsahu - Nejednoznačná geometria tabuliek, chýbajúce sémantické deti, konfliktné identifikátory a nevyriešená sémantika čítania zostávajú chybami a spúšťajú predvolený rollback
MaxObjectsaMaxRepairszlyhajú uzavreté predtým, než nedôveryhodné grafy môžu vynútiť neohraničenú prácu
Politika validácie
Začnite s THPDFUA2ValidationOptions.Default a zmeňte iba rozhodnutia špecifické pre pracovný postup
THPDFUA2HeadingPolicy vyberá zaobchádzanie s nadpismi, THPDFUA2IssueSeverity rozlišuje varovania od chýb a každý THPDFUA2ValidationIssue nesie stabilný kód, cestu štruktúry, závažnosť a správu
HeadingPolicymôže ignorovať preskočené úrovne, ponechať ich ako varovania alebo vyžadovať sekvenčné úrovneAllowDocumentFragmentHeadingStartsresetuje kontext nadpisov v rámciDocumentFragmentRequireListLabelsvyžaduje jedenLblpre číslované položky zoznamuRequireExplicitTableHeaderAssociationshlási dátové bunky, ktoré sa spoliehajú iba na odvodenie rozsahu hlavičiekCheckListSemanticspovoľuje úplné kontroly číslovania, pokračovania, popiskov, popisov, tela a umiestnenia obsahu PDF 2.0CheckTableSemanticspovoľuje ohraničené kontroly mriežky, rozpätí, skupín riadkov, rozsahu hlavičiek a asociácií lokálnych pre tabuľkuCheckRubyWarichuSequencespovoľuje presné kontroly sekvencií priamych detí pre východoázijské inline štruktúryCheckPronunciationHintspovoľuje kontroly nápovedí štruktúry a vložených lexikónov PLSRequireStructureAssociatedFilesvyžaduje, aby každý pripojený súbor katalógu bol dosiahnuteľný z prvku štruktúryRequireFormulaTextAlternativevyžaduje textové alternatívy vzorcov, pokiaľ nie je prítomné pripojené MathMLMaxObjectsohraničuje sken nepriamych objektov pred začiatkom prechoduMaxIssuesohraničuje uchované diagnostické záznamy bez skrytia konečného výsledku úspechu alebo zlyhania
Odporúčaný pracovný postup
- Zapnite
PDFUACompliance, vybertePDFUAPart = 2a nastavteLangpredBeginDoc - Vytvorte jeden
Documentnajvyššej úrovne a vytvorte sémantické deti so štandardnými alebo explicitne menovanými rolami - Registrujte anotácie a pripojené súbory cez ich pomocníkov štruktúry, zapíšte nápovedy výslovnosti pomocou
SetStructurePronunciationa pridajte súbory PLS v požadovanom poradí vyhľadávania pomocouAddPronunciationLexicon - Spustite
ValidatePDFUA2StructurepredEndDoc, keď aplikácia potrebuje všetky diagnostické záznamy naraz, zavolajteRepairPDFUA2Structurepre deterministické opravy menných priestorov, štruktúry a prístupnosti a vyberte preťaženie zdieľaných nálezov, keď CI vyžaduje štandardný JSON - Vyriešte každú chybu pred výstupom, pretože
EndDoctiež vynucuje prísnu predvolenú politiku pre dokumenty PDF/UA-2
Pozri tiež: Automatická štruktúra rozloženia, ValidatePDFUA2Structure, RepairPDFUA2Structure, ComplianceFindingsToJSON, SetStructurePronunciation, AddPronunciationLexicon, AddStructureElement, BeginTaggedContentForStructure, AppendStructureMarkedContent