Automatická štruktúra PDF/UA zo stromov rozloženia

THPDFDOMRenderer vie premeniť vizuálny strom rozloženia na zodpovedajúci logický štruktúrny strom bez manuálnej alokácie MCID

THPDFDOMDocument.GenerateStructure má predvolene hodnotu True, zapína tagovaný výstup PDF, vytvára jeden koreň Document a jeden Sect na sekciu a používa THPDFDOMDocument.Language, keď cieľ nemá jazyk dokumentu

Sémantické predvolené hodnoty a prepísania

Obsah rozloženiaVygenerovaná štruktúra
THPDFDOMTextP alebo H1 až H6, keď je priradené HeadingLevel
THPDFDOMStack a THPDFDOMContainerDiv
THPDFDOMListL s potomkami LI, Lbl a LBody plus ListNumbering
THPDFDOMTableTable, TR, TH a TD s rozsahom stĺpca na hlavičkových bunkách
THPDFDOMImageFigure s alternatívnym textom
Hlavičky, päty, opakované hlavičky tabuliek, medzery a dekoratívne rámčekyOznačený obsah Artifact

Každý komponent tiež vystavuje SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText a Artifact na explicitnú kontrolu

Príklad prístupného dokumentu

Document.Language := 'en-US';
Section := Document.AddSection;
Section.Header := THPDFDOMText.Create('Quarterly report');
Section.Body.AddHeading('Results', 1, 'Title');

List := THPDFDOMList.Create('Decimal', 'Steps');
List.AddItem('1.', 'Review the totals');
Section.Body.Add(List);

Table := THPDFDOMTable.Create('Summary');
Table.AddColumn;
Table.AddColumn;
Header := Table.AddRow(18, True);
Header[0].Text := 'Name';
Header[1].Text := 'Value';
Row := Table.AddRow(18);
Row[0].Text := 'Alpha';
Row[1].Text := '42';
Section.Body.Add(Table);

Section.Body.Add(THPDFDOMImage.Create(Bitmap, 120, 80,
  'Revenue chart by quarter', 'Chart'));

PDF.PDFUACompliance := True;
PDF.PDFUAPart := 2;
Statistics := Renderer.Render(Document, PDF);

Vykresľovač odmietne prvý nadpis nad H1, preskočené úrovne nadpisov, osirotené role zoznamu alebo tabuľky a obrázok PDF/UA bez alternatívneho textu skôr, ako zapíše neplatnú štruktúru

Identita naprieč stránkami a poradie čítania

Logický komponent si zachováva jeden štruktúrny prvok, keď sa rozdelí naprieč stránkami

Každé viditeľné pokračovanie dostáva MCID lokálny pre stránku a slovník MCR, ktorý ukazuje z existujúceho štruktúrneho prvku na správnu stránku

ParentTree stránky mapuje každý MCID späť na ten istý štruktúrny prvok, zatiaľ čo klony pokračovania zachovávajú logickú identitu bez kopírovania zdrojového textu alebo riadkov tabuľky

Opakované hlavičky tabuliek na pokračovacích stránkach sú artefakty, takže ich vizuálne opakovanie nepreusporiada logickú hlavičku tabuľky pred skoršie riadky tela

Priame API na tvorbu bezpečnú pre pokračovanie

BeginTaggedContentForStructure alokuje MCID a otvára označený obsah pre štruktúrny prvok, ktorý už existuje

AppendStructureMarkedContent pripojí explicitnú stránku a MCID ako MCR a aktualizuje ParentTree stránky

Použite tieto nízkoúrovňové metódy, keď vlastný vykresľovač rozloženia vlastní logiku pokračovania mimo HPDFLayoutDOM

Štatistiky a kompatibilita

THPDFDOMRenderStatistics hlási počty štruktúrnych prvkov, označeného obsahu a artefaktov popri stránkach, umiestneniach, rozdeleniach a hĺbke pokračovania

Nastavte GenerateStructure na False pred vykresľovaním, keď sa vyžaduje bajtovo kompatibilný netagovaný výstup

Súvisiace API