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
TitleundLanguageaufTaggedContentfür die PDF/UA-Konformität. - Erstellen Sie den Strukturbaum von oben nach unten: Elemente erzeugen, dann Kinder anhängen.
- Verwenden Sie
SetAlternativeTextbei figure-Elementen für die Barrierefreiheit von Screenreadern. - Markieren Sie Tabellen mit
THead,TBody,TFootfür korrekte Tabellensemantik. - Validieren Sie die PDF/UA-Konformität mit
PdfFormatConversionOptions(siehe Konvertierungshandbuch).
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| PDF/UA Validierung schlägt fehl | Strukturbaum fehlt erforderliche Elemente | Stellen Sie sicher, dass alle Inhalte entsprechende Strukturelemente haben |
| Überschriftenreihenfolge ist falsch | H2 erscheint vor H1 | Folgen Sie einer sequentiellen Überschrifts-Hierarchie |
| Abbildung hat keinen Alt-Text | SetAlternativeText nicht aufgerufen | Stellen Sie immer Alt-Text für Illustrationen bereit |
| Tabelle wird vom Screenreader nicht erkannt | Fehlende THead/TBody-Struktur | Verwenden 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 / Methode | Beschreibung |
|---|---|
TaggedContent | Einstiegspunkt für logische Strukturoperationen |
TaggedContent.SetTitle | Setzen Sie den Dokumenttitel für Barrierefreiheit |
TaggedContent.SetLanguage | Legt die Dokumentensprache fest |
ITaggedContent | Schnittstelle mit Fabrikmethoden für alle Elementtypen |
StructureElement | Basisklasse für alle Strukturelemente |
StructureElement.AppendChild | Füge ein Kindelement zum Baum hinzu |
StructureElement.SetText | Setzen Sie den Textinhalt eines Elements |
TableElement | Barrierefreies Tabellenelement |
TableElement.CreateTHead | Erstelle den Tabellenkopfabschnitt |
TableElement.CreateTBody | Erstelle den Tabellenkörperabschnitt |
TableTRElement | Tabellenzeilen-Element |
TableTRElement.CreateTD | Datenzelle hinzufügen |
TableTRElement.CreateTH | Kopfzeilenzelle hinzufügen |
IllustrationElement | Abbildungs-/Illustrations-Strukturelement |
IllustrationElement.SetImage | Ein Bild an die Illustration anhängen |