Automatická struktura PDF/UA ze stromů rozvržení

THPDFDOMRenderer dokáže převést strom vizuálního rozvržení do odpovídajícího stromu logické struktury bez ručního přidělování MCID

THPDFDOMDocument.GenerateStructure je ve výchozím nastavení True, zapne výstup tagged PDF, vytvoří jeden kořen Document a jeden Sect pro každý oddíl a použije THPDFDOMDocument.Language, pokud cíl nemá jazyk dokumentu

Sémantické výchozí hodnoty a přepsání

Obsah rozvrženíVytvořená struktura
THPDFDOMTextP nebo H1 až H6, pokud je přiřazeno HeadingLevel
THPDFDOMStack a THPDFDOMContainerDiv
THPDFDOMListL s potomky LI, Lbl a LBody plus ListNumbering
THPDFDOMTableTable, TR, TH a TD se sloupcovým rozsahem v buňkách záhlaví
THPDFDOMImageFigure s alternativním textem
Záhlaví, zápatí, opakovaná záhlaví tabulek, mezery a dekorativní rámečkyOznačený obsah Artifact

Každá komponenta také zpřístupňuje SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText a Artifact pro výslovné řízení

Příklad pří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);

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

Vykreslovač před zápisem neplatné struktury odmítne první nadpis nad H1, přeskočené úrovně nadpisů, osiřelé role seznamu nebo tabulky a obrázek PDF/UA bez alternativního textu

Identita mezi stránkami a pořadí čtení

Logická komponenta zachová jeden prvek struktury i při rozdělení mezi stránky. Každé viditelné pokračování dostane lokální MCID stránky a slovník

MCR, který ukazuje ze stávajícího prvku struktury na správnou stránku

ParentTree stránky mapuje každý MCID zpět na stejný prvek struktury a klony pokračování zachovávají logickou identitu bez kopírování zdrojového textu nebo řádků tabulky

Rozhraní API pro pokračování

BeginTaggedContentForStructure přidělí MCID a otevře označený obsah pro již existující prvek struktury

AppendStructureMarkedContent přidá explicitní stránku a MCID jako MCR a aktualizuje ParentTree

ParentTree stránky

Statistiky a kompatibilita

THPDFDOMRenderStatistics uvádí počty prvků struktury, označeného obsahu a artefaktů vedle stránek, umístění, rozdělení a hloubky pokračování

Pokud je před vykreslením vyžadován binárně kompatibilní neoznačený výstup, nastavte GenerateStructure na False

Související API