Logische Struktur

Logische Struktur

Getaggte PDFs enthalten einen logischen Strukturbaum, der die semantische Hierarchie des Dokuments definiert — Absätze, Überschriften, Tabellen, Abbildungen und Listen. Aspose.PDF FOSS für .NET stellt das TaggedContent API zum Erstellen und Prüfen dieser Struktur bereit, das für die PDF/UA Barrierefreiheitskonformität unerlässlich ist.


Zugriff auf getaggte Inhalte

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

Erstellen von Strukturelementen

ITaggedContent bietet Fabrikmethoden für jeden Standard-Strukturelementtyp. Elemente werden zu einem Baum zusammengefügt, indem AppendChild aufgerufen wird.

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

Strukturierte Tabellen

TableElement erstellt barrierefreie Tabellen mit Kopf-, Körper- und Fußzeilenabschnitten.

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

Illustrationen und Abbildungen

IllustrationElement umschließt Bilder im Strukturbaum.

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

Strukturelementtypen

Der API unterstützt die vollständige Menge an PDF-Strukturelementtypen:

  • Blockebene: Absatz, Überschrift (H1-H6), Liste, ListItem, Tabelle, BlockQuote, Code
  • Inline: Span, Link, Anmerkung, Abbildung, Formel
  • Grouping: Division, Artikel, Abschnitt, Teil

Tipps und bewährte Vorgehensweisen

  • Setzen Sie immer Title und Language auf TaggedContent für die PDF/UA-Konformität.
  • Erstellen Sie den Strukturbaum von oben nach unten: Elemente erzeugen, dann Kinder anhängen.
  • Verwenden Sie SetAlternativeText bei figure-Elementen für die Barrierefreiheit von Screenreadern.
  • Markieren Sie Tabellen mit THead, TBody, TFoot für korrekte Tabellensemantik.
  • Validieren Sie die PDF/UA-Konformität mit PdfFormatConversionOptions (siehe Konvertierungshandbuch).

Häufige Probleme

ProblemUrsacheLösung
PDF/UA Validierung schlägt fehlStrukturbaum fehlt erforderliche ElementeStellen Sie sicher, dass alle Inhalte entsprechende Strukturelemente haben
Überschriftenreihenfolge ist falschH2 erscheint vor H1Folgen Sie einer sequentiellen Überschrifts-Hierarchie
Abbildung hat keinen Alt-TextSetAlternativeText nicht aufgerufenStellen Sie immer Alt-Text für Illustrationen bereit
Tabelle wird vom Screenreader nicht erkanntFehlende THead/TBody-StrukturVerwenden Sie die vollständige Tabellenstruktur API

FAQ

Was ist ein Tagged PDF?

Ein getaggtes PDF enthält einen logischen Strukturbaum, der visuelle Inhalte zu semantischen Elementen (Überschriften, Absätze, Tabellen) zuordnet und damit Hilfsmittel für Barrierefreiheit sowie das Neuflowen von Inhalten ermöglicht.

Ist ein getaggtes PDF dasselbe wie PDF/UA?

PDF/UA ist ein Standard, der das Tagging sowie zusätzliche Barrierefreiheitsregeln verlangt. Getaggte PDFs sind eine Voraussetzung für die PDF/UA-Konformität.

Kann ich ein bestehendes PDF taggen?

Der TaggedContent API funktioniert am besten mit Dokumenten, die von Grund auf neu erstellt wurden. Bei bestehenden PDFs sollte man den Strukturbaum über Document.TaggedContent überprüfen.


API Reference Zusammenfassung

Klasse / MethodeBeschreibung
TaggedContentEinstiegspunkt für logische Strukturoperationen
TaggedContent.SetTitleSetzen Sie den Dokumenttitel für Barrierefreiheit
TaggedContent.SetLanguageLegt die Dokumentensprache fest
ITaggedContentSchnittstelle mit Fabrikmethoden für alle Elementtypen
StructureElementBasisklasse für alle Strukturelemente
StructureElement.AppendChildFüge ein Kindelement zum Baum hinzu
StructureElement.SetTextSetzen Sie den Textinhalt eines Elements
TableElementBarrierefreies Tabellenelement
TableElement.CreateTHeadErstelle den Tabellenkopfabschnitt
TableElement.CreateTBodyErstelle den Tabellenkörperabschnitt
TableTRElementTabellenzeilen-Element
TableTRElement.CreateTDDatenzelle hinzufügen
TableTRElement.CreateTHKopfzeilenzelle hinzufügen
IllustrationElementAbbildungs-/Illustrations-Strukturelement
IllustrationElement.SetImageEin Bild an die Illustration anhängen

Siehe auch

 Deutsch