Logische structuur
Logische structuur
Getagde PDF’s bevatten een logische structuurboom die de semantische hiërarchie van het document definieert — alinea’s, koppen, tabellen, figuren en lijsten. Aspose.PDF FOSS for .NET biedt de TaggedContent API voor het bouwen en inspecteren van deze structuur, wat essentieel is voor PDF/UA-toegankelijkheidsnaleving.
Toegang tot getagde inhoud
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Structuurelementen maken
ITaggedContent biedt fabrieksmethoden voor elk standaardstructuurelementtype. Elementen worden samengevoegd tot een boom door AppendChild aan te roepen.
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);Gestructureerde tabellen
TableElement maakt toegankelijke tabellen met head-, body- en footersecties.
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");Illustraties en figuren
IllustrationElement omvat afbeeldingen in de structuurboom.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Structuurelementtypen
De API ondersteunt de volledige set PDF-structuurelementtypen:
- Block-level: Paragraaf, Kop (H1-H6), Lijst, Lijstitem, Tabel, Blokcitaat, Code
- Inline: Span, Link, Annotatie, Figuur, Formule
- Grouping: Divisie, Artikel, Sectie, Deel
Tips en Best Practices
- Stel altijd
TitleenLanguagein opTaggedContentvoor PDF/UA‑conformiteit. - Bouw de structuurboom van boven naar beneden: maak elementen aan, voeg vervolgens kinderen toe.
- Gebruik
SetAlternativeTextop figure‑elementen voor toegankelijkheid voor schermlezers. - Markeer tabellen met
THead,TBody,TFootvoor correcte tabelsemantiek. - Valideer PDF/UA‑conformiteit met
PdfFormatConversionOptions(zie Conversiegids).
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| PDF/UA-validatie mislukt | Structuurbomen missen vereiste elementen | Zorg ervoor dat alle inhoud overeenkomende structuurelementen heeft |
| Kopvolgorde is onjuist | H2 verschijnt vóór H1 | Volg een opeenvolgende kophiërarchie |
| Figuur heeft geen alt-tekst | SetAlternativeText niet aangeroepen | Voorzie illustraties altijd van alt-tekst |
| Tabel wordt niet herkend door schermlezer | Ontbrekende THead/TBody-structuur | Gebruik de volledige tabelstructuur-API |
FAQ
Wat is een getagde PDF?
Een getagde PDF bevat een logische structuurboom die visuele inhoud koppelt aan semantische elementen (koppen, alinea’s, tabellen), waardoor toegankelijkheidstools en inhoudsherindeling mogelijk worden.
Is tagged PDF hetzelfde als PDF/UA?
PDF/UA is een standaard die tagging vereist plus aanvullende toegankelijkheidsregels.
Getagde PDF’s zijn een voorwaarde voor PDF/UA-naleving.
Kan ik een bestaande PDF taggen?
De TaggedContent API werkt het beste met documenten die vanaf nul zijn gemaakt. Voor bestaande PDF’s, inspecteer de structuurboom via Document.TaggedContent.
API-referentieoverzicht
| Class / Method | Description |
|---|---|
TaggedContent | Instappunt voor logische structuurbewerkingen |
TaggedContent.SetTitle | Stel de documenttitel in voor toegankelijkheid |
TaggedContent.SetLanguage | Stel de documenttaal in |
ITaggedContent | Interface met fabrieksmethoden voor alle elementtypen |
StructureElement | Basisklasse voor alle structuur‑elementen |
StructureElement.AppendChild | Voeg een onderliggend element toe aan de boom |
StructureElement.SetText | Stel de tekstinhoud van een element in |
TableElement | Toegankelijk tabelstructuurelement |
TableElement.CreateTHead | Maak het tabelkop‑gedeelte |
TableElement.CreateTBody | Maak het tabellichaam‑gedeelte |
TableTRElement | Tabelrij‑element |
TableTRElement.CreateTD | Voeg een gegevenscel toe |
TableTRElement.CreateTH | Voeg een kopcel toe |
IllustrationElement | Figuur/illustratie‑structuurelement |
IllustrationElement.SetImage | Koppel een afbeelding aan de illustratie |