Struktura logiczna

Struktura logiczna

Struktura logiczna

Pliki PDF z tagami zawierają logiczne drzewo struktury, które definiuje semantyczną hierarchię dokumentu — akapity, nagłówki, tabele, rysunki i listy. Aspose.PDF FOSS for .NET udostępnia TaggedContent API do budowania i inspekcji tej struktury, co jest niezbędne dla zgodności z dostępnością PDF/UA.


Uzyskiwanie dostępu do oznaczonej treści

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

Tworzenie elementów struktury

ITaggedContent udostępnia metody fabryczne dla każdego standardowego typu elementu struktury. Elementy są składane w drzewo poprzez wywołanie 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);

Strukturalne tabele

TableElement tworzy dostępne tabele z sekcjami nagłówka, ciała i stopki.

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

Ilustracje i rysunki

IllustrationElement opakowuje obrazy w drzewie struktury.

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

Typy elementów struktury

API obsługuje pełny zestaw typów elementów struktury PDF:

  • Block-level: Akapit, Nagłówek (H1-H6), Lista, Element listy, Tabela, Cytat blokowy, Kod
  • Inline: Fragment, Odnośnik, Adnotacja, Rysunek, Formuła
  • Grouping: Podział, Artykuł, Sekcja, Część

Wskazówki i najlepsze praktyki

  • Zawsze ustaw Title i Language na TaggedContent dla zgodności z PDF/UA.
  • Buduj drzewo struktury od góry do dołu: twórz elementy, a następnie dodawaj dzieci.
  • Użyj SetAlternativeText na elementach figure, aby zapewnić dostępność dla czytników ekranu.
  • Oznacz tabele przy użyciu THead, TBody, TFoot, aby zapewnić prawidłową semantykę tabel.
  • Sprawdź zgodność z PDF/UA przy użyciu PdfFormatConversionOptions (zobacz przewodnik konwersji).

Typowe problemy

ProblemPrzyczynaRozwiązanie
Walidacja PDF/UA nie powiodła sięDrzewo struktury nie zawiera wymaganych elementówUpewnij się, że cała zawartość ma odpowiadające elementy struktury
Kolejność nagłówków jest nieprawidłowaH2 pojawia się przed H1Stosuj kolejność hierarchii nagłówków
Rysunek nie ma tekstu alternatywnegoSetAlternativeText nie wywołanoZawsze podawaj tekst alternatywny dla ilustracji
Tabela nie jest rozpoznawana przez czytnik ekranuBrak struktury THead/TBodyUżyj pełnego API struktury tabeli

Najczęściej zadawane pytania

Czym jest oznaczony PDF?

PDF z tagami zawiera logiczne drzewo struktury, które mapuje treść wizualną na elementy semantyczne (nagłówki, akapity, tabele), umożliwiając narzędzia dostępności i przepływ treści.

Czy PDF z tagami jest tym samym co PDF/UA?

PDF/UA jest standardem, który wymaga tagowania oraz dodatkowych zasad dostępności.
Tagged PDFs są warunkiem wstępnym zgodności z PDF/UA.

Czy mogę otagować istniejący PDF?

API TaggedContent działa najlepiej z dokumentami tworzonymi od podstaw. Dla istniejących plików PDF, sprawdź drzewo struktury za pomocą Document.TaggedContent.


Podsumowanie referencji API

Klasa / MetodaOpis
TaggedContentPunkt wejścia dla operacji struktury logicznej
TaggedContent.SetTitleUstaw tytuł dokumentu dla dostępności
TaggedContent.SetLanguageUstaw język dokumentu
ITaggedContentInterfejs z metodami fabryki dla wszystkich typów elementów
StructureElementKlasa bazowa dla wszystkich elementów struktury
StructureElement.AppendChildDodaj element potomny do drzewa
StructureElement.SetTextUstaw zawartość tekstową elementu
TableElementElement struktury tabeli dostępnej
TableElement.CreateTHeadUtwórz sekcję nagłówka tabeli
TableElement.CreateTBodyUtwórz sekcję ciała tabeli
TableTRElementElement wiersza tabeli
TableTRElement.CreateTDDodaj komórkę danych
TableTRElement.CreateTHDodaj komórkę nagłówka
IllustrationElementElement struktury rysunku/ilustracji
IllustrationElement.SetImageDołącz obraz do ilustracji

Zobacz także

 Polski