Avtorstvo, preverjanje in popravilo strukture PDF/UA-2

HotPDF lahko zgradi, preveri in atomsko popravi mešano strukturno semantiko PDF 1.7 in PDF 2.0, pri tem pa ohrani izrecno identiteto imenskega prostora in omejene stroške obdelave

Avtorstvo z zavedanjem imenskih prostorov

AddStructureElement dodeli standardni strukturni imenski prostor PDF 2.0, kadar ga zahteva vloga PDF/UA-2, vključno z obveznim vrhunskim elementom Document

AddStructureElementNS ustvari izrecno imensko označene elemente, AddStructRoleMapNS pa doda preslikave imen ali dvoelementnih nizov, ki se lahko prehodno razrešijo čez meje imenskih prostorov

Slovarji imenskih prostorov so posredni, registrirani enkrat po URI-ju in izpisani prek StructTreeRoot/Namespaces

Atributi in pomenski pripomočki

APINamen
SetStructureAttributeNameDoda ali zamenja atribut z vrednostjo imena v slovarju, specifičnem za lastnika, in lahko poveže lastne lastnike z imenskim prostorom
SetStructureAttributeNumberDoda ali zamenja celoštevilski strukturni atribut, kot sta RowSpan ali ColSpan
SetStructureTableCellHeadersZapiše neprazno matriko Headers, ki prepozna celice glave tabele po edinstvenih vrednostih ID
SetStructurePronunciationZapiše podedovano ime PhoneticAlphabet in natančno zamenjavo Phoneme na strukturnem elementu PDF 2.0
AddPronunciationLexiconVgradi posredno datoteko application/pls+xml in doda njen Filespec v StructTreeRoot/PronunciationLexicon v vrstnem redu iskanja
AssociateFileWithStructurePoveže posredni Filespec s strukturnim elementom prek AF
AddAccessibleFormulaUstvari Formula z Alt, ActualText ali obema
AddAccessibleMathMLFormulaUstvari formulo, vgradi opisano datoteko application/mathml+xml, jo poveže s strukturo in doda podrejeni element imenskega prostora MathML

Omejeno preverjanje v enem prehodu

ValidatePDFUA2Structure vrne vsak zadržani diagnostični podatek v matriki THPDFUA2ValidationIssues in vrne False, kadar ima vsaj en diagnostični podatek resnost uisError

Preverjevalnik razreši preslikave vlog, ki se zavedajo imenskih prostorov, z zaznavanjem ciklov ter preveri vrhunski dokument, hierarhijo starš-potomec, povratne povezave staršev, lastnike in revizije atributov, StructParent opomb, lastništvo starševskega drevesa in OBJR, povezane datoteke, naslove, sezname, tabele, Ruby, Warichu, namige za izgovorjavo, formule in MathML

Preverjanje tabel razširi pozitivne razpone vrstic in stolpcev le znotraj MaxObjects, zavrne sekajoče se celice in nepravilno geometrijo vrstic ali skupin vrstic, razreši Headers znotraj lastniške tabele, zazna podvojene, lastne in ciklične sklice glav ter sprejme implicitne povezave le, kadar jih določita Scope ali postavitev v prvi vrstici in prvem stolpcu

Preverjanje seznamov prepozna celoten nabor ListNumbering PDF 2.0, uveljavlja semantiko oznak, preverja ContinuedList in urejene sklice ContinuedFrom na isti ravni ter zavrne cikle nadaljevanja ali neposredno resnično vsebino zunaj Lbl in LBody

Podrejeni elementi Ruby morajo biti RB,RT ali RB,RP,RT,RP, podrejeni elementi Warichu morajo biti WP,WT,WP, vnosi izgovorjave ohranijo svoje vrste objektov PDF, vsak slovar izgovorjave pa mora biti posredni vgrajeni Filespec PLS

Skeniranje posrednih objektov, globina prehoda, globina preslikave vlog, razširjene celice tabel, število zadržanih težav in obdelava sovražnih zbirk so omejeni, tako da preverjanje ostane predvidljivo tudi za nezaupanja vredna strukturna drevesa

Skupne ugotovitve skladnosti

Preobtežitev preverjanja THPDFComplianceFindings vrne iste diagnostične podatke s skupnim profilom, resnostjo, stabilnim ID-jem pravila, klavzulo standarda, logično potjo, številko posrednega objekta in ničelno osnovanim indeksom strani

Podrobna preobtežitev popravila primerja omejene ugotovitve pred in po popravilu, da prepozna uporabljena, nerazrešena, razveljavljena ali neuspešna dejanja popravila, ter doda povzetke popravljenih družin s štetjem

ComplianceFindingsToJSON ohrani deterministični vrstni red v skladu z različico sheme hotpdf.compliance.findings.v1 in predstavi neznane lokacije objektov ali strani kot null

Atomsko popravilo strukture

RepairPDFUA2Structure deluje znotraj transakcije grafa s kopiranjem ob pisanju, kanonizira podvojene ali neregistrirane slovarje imenskih prostorov, prepiše sklice na imenske prostore strukture in preslikav vlog, popravi standardne strukturne imenske prostore, normalizira imenske prostore in revizije strukturnih atributov ter popravi deterministične napake seznamov, tabel, Ruby, Warichu, izgovorjave, nadomestnega besedila, dedovanja jezika, vrstnega reda naslovov in oznak Artifact

Po mutaciji isti preverjevalnik preveri kandidatni graf, privzeta politika pa razveljavi vsako spremembo, kadar ostane katera koli napaka PDF/UA-2

Politika preverjanja

Začnite z THPDFUA2ValidationOptions.Default in spremenite le odločitve, specifične za potek dela

THPDFUA2HeadingPolicy izbere obravnavo naslovov, THPDFUA2IssueSeverity razlikuje opozorila od napak, vsak THPDFUA2ValidationIssue pa nosi stabilno kodo, strukturno pot, resnost in sporočilo

Priporočeni potek dela

  1. Omogočite PDFUACompliance, izberite PDFUAPart = 2 in nastavite Lang pred BeginDoc
  2. Ustvarite en vrhunski Document in zgradite pomenske podrejene elemente s standardnimi ali izrecno imensko označenimi vlogami
  3. Registrirajte opombe in povezane datoteke prek njihovih strukturnih pripomočkov, zapišite namige izgovorjave z SetStructurePronunciation in dodajte datoteke PLS v želenem vrstnem redu iskanja z AddPronunciationLexicon
  4. Zaženite ValidatePDFUA2Structure pred EndDoc, kadar aplikacija potrebuje vse diagnostične podatke hkrati, pokličite RepairPDFUA2Structure za deterministična popravila imenskih prostorov, strukture in dostopnosti ter izberite preobtežitev skupnih ugotovitev, kadar CI zahteva standardni JSON
  5. Razrešite vsako napako pred izpisom, ker EndDoc prav tako uveljavlja strogo privzeto politiko za dokumente PDF/UA-2

Glej tudi: Automatic layout structure, ValidatePDFUA2Structure, RepairPDFUA2Structure, ComplianceFindingsToJSON, SetStructurePronunciation, AddPronunciationLexicon, AddStructureElement, BeginTaggedContentForStructure, AppendStructureMarkedContent