Логическа структура

Логическа структура

Логическа структура

Тагираните 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 структурата:

  • Block-level: Параграф, Заглавие (H1-H6), Списък, Елемент от списъка, Таблица, Цитат, Код
  • Inline: Span, Връзка, Анотация, Фигура, Формула
  • Grouping: Раздел, Статия, Секция, Част

Съвети и най‑добри практики

  • Винаги задавайте 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

FAQ

Какво е маркиран 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Прикачване на изображение към илюстрацията

Вижте също

 Български