Логічна структура

Логічна структура

Логічна структура

Теговані PDF включають логічне дерево структури, яке визначає семантичну ієрархію документа — абзаци, заголовки, таблиці, рисунки та списки. Aspose.PDF FOSS for .NET надає TaggedContent API для створення та інспекції цієї структури, що є важливим для відповідності доступності PDF/UA.


Доступ до позначеного вмісту

using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");

Створення елементів структури

ITaggedContent надає фабричні методи для кожного стандартного типу елементу структури. Елементи збираються в дерево шляхом виклику AppendChild.

var root = tagged.RootElement;

var heading = tagged.CreateHeaderElement(1);
heading.SetText("Chapter 1");
root.AppendChild(heading);

var paragraph = tagged.CreateParagraphElement();
paragraph.SetText("This is the first paragraph.");
root.AppendChild(paragraph);

Структуровані таблиці

TableElement створює доступні таблиці з розділами head, body та footer.

var table = tagged.CreateTableElement();
root.AppendChild(table);

var thead = table.CreateTHead();
var headerRow = thead.CreateTR();
headerRow.CreateTH().SetText("Name");
headerRow.CreateTH().SetText("Value");

var tbody = table.CreateTBody();
var dataRow = tbody.CreateTR();
dataRow.CreateTD().SetText("Width");
dataRow.CreateTD().SetText("612");

Ілюстрації та схеми

IllustrationElement обгортає зображення у дереві структури.

var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);

Типи елементів структури

API підтримує повний набір типів елементів структури PDF:

  • Блочний рівень: Paragraph, Heading (H1-H6), List, ListItem, Table, BlockQuote, Code
  • Вбудований: Span, Link, Annotation, Figure, Formula
  • Групування: Division, Article, Section, Part

Поради та найкращі практики

  • Завжди встановлюйте Title і Language на TaggedContent для відповідності PDF/UA.
  • Будуйте дерево структури зверху вниз: створюйте елементи, а потім додавайте дочірні.
  • Використовуйте SetAlternativeText у елементах figure для доступності скрінрідера.
  • Позначайте таблиці за допомогою THead, TBody, TFoot для правильної семантики таблиць.
  • Перевіряйте відповідність PDF/UA за допомогою PdfFormatConversionOptions (див. посібник з конвертації).

Поширені проблеми

IssueCauseFix
PDF/UA validation failsStructure tree missing required elementsEnsure all content has corresponding structure elements
Heading order is wrongH2 appears before H1Follow sequential heading hierarchy
Figure has no alt textSetAlternativeText not calledAlways provide alt text for illustrations
Table not recognized by screen readerMissing THead/TBody structureUse the full table structure API

ЧаПи

Що таке тегований PDF?

Тегований PDF містить логічне дерево структури, яке відображає візуальний вміст у семантичні елементи (заголовки, абзаци, таблиці), забезпечуючи інструменти доступності та переформатування вмісту.

Чи тегований PDF є тим самим, що PDF/UA?

PDF/UA — це стандарт, який вимагає тегування та додаткових правил доступності.
Теговані PDF є передумовою для відповідності PDF/UA.

Чи можу я додати теги до існуючого PDF?

API TaggedContent працює найкраще з документами, створеними з нуля. Для існуючих PDF‑файлів перегляньте дерево структури за допомогою Document.TaggedContent.


Зведення довідки API

Клас / МетодОпис
TaggedContentТочка входу для операцій логічної структури
TaggedContent.SetTitleВстановити заголовок документа для доступності
TaggedContent.SetLanguageВстановити мову документа
ITaggedContentІнтерфейс з фабричними методами для всіх типів елементів
StructureElementБазовий клас для всіх елементів структури
StructureElement.AppendChildДодати дочірній елемент до дерева
StructureElement.SetTextВстановити текстовий вміст елемента
TableElementЕлемент структури таблиці з підтримкою доступності
TableElement.CreateTHeadСтворити розділ заголовка таблиці
TableElement.CreateTBodyСтворити розділ тіла таблиці
TableTRElementЕлемент рядка таблиці
TableTRElement.CreateTDДодати клітинку даних
TableTRElement.CreateTHДодати клітинку заголовка
IllustrationElementЕлемент структури рисунка/ілюстрації
IllustrationElement.SetImageПрикріпити зображення до ілюстрації

Див. також

 Українська