Автоматична PDF/UA структура от дървета на оформлението

THPDFDOMRenderer може да преобразува дървото на визуалното оформление в съответстващо дърво на логическата структура без ръчно разпределяне на MCID

THPDFDOMDocument.GenerateStructure по подразбиране е True, включва изход с етикетиран PDF, създава един корен Document и по един Sect за всеки раздел и използва THPDFDOMDocument.Language, когато целевият документ няма език

Семантични стойности по подразбиране и замествания

Съдържание на оформлениетоГенерирана структура
THPDFDOMTextP или H1 до H6, когато е зададен HeadingLevel
THPDFDOMStack и THPDFDOMContainerDiv
THPDFDOMListL с наследници LI, Lbl и LBody, както и ListNumbering
THPDFDOMTableTable, TR, TH и TD, с обхват на колоната в клетките за заглавия
THPDFDOMImageFigure с алтернативен текст
Горни и долни колонтитули, повтарящи се заглавия на таблици, разделители и декоративни полетаМаркирано съдържание Artifact

Всеки компонент предоставя и SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText и Artifact за изричен контрол

Пример за достъпен документ

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);

Преди да запише невалидна структура, рендериращият механизъм отхвърля първо заглавие над H1, пропуснати нива на заглавия, несвързани роли на списък или таблица и PDF/UA фигура без алтернативен текст

Междустранична идентичност и ред за четене

Логическият компонент запазва един елемент на структурата, когато се разделя между страници

Всяко видимо продължение получава локален за страницата MCID и речник MCR, който насочва от съществуващия елемент на структурата към правилната страница

ParentTree на страницата съпоставя всеки MCID със същия елемент на структурата, а копията за продължение запазват логическата идентичност, без да копират изходния текст или редовете на таблицата

Повтарящите се заглавия на таблици на следващи страници са артефакти, така че визуалното им повторение да не пренарежда логическото заглавие на таблицата преди по-ранните редове с данни

API за директно авторство, безопасно при продължение

BeginTaggedContentForStructure разпределя MCID и отваря маркирано съдържание за вече съществуващ елемент на структурата

AppendStructureMarkedContent добавя изрично страница и MCID като MCR и актуализира ParentTree на страницата

Използвайте тези методи от по-ниско ниво, когато персонализиран рендериращ механизъм за оформление управлява логиката за продължение извън HPDFLayoutDOM

Статистика и съвместимост

THPDFDOMRenderStatistics отчита броя на елементите на структурата, маркираното съдържание и артефактите, наред със страниците, разполаганията, разделянията и дълбочината на продължението

Задайте GenerateStructure на False преди рендиране, когато е необходим нетагиран изход, съвместим на ниво байтове

Свързани API