Estructura lògica
Estructura lògica
Els PDFs etiquetats inclouen un arbre de estructura lògica que defineix la jerarquia semàntica del document — paràgrafs, encapçalaments, taules, figures i llistes. Aspose.PDF FOSS per a .NET proporciona l’TaggedContent API per a crear i inspeccionar aquesta estructura, que és essencial per al compliment d’accessibilitat PDF/UA.
Accés al contingut etiquetat
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Creant elements d’estructura
ITaggedContent proporciona mètodes de fàbrica per a cada tipus d’element d’estructura estàndard. Els elements s’assemblen en un arbre cridant 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);Taules estructurades
TableElement crea taules accessibles amb seccions de capçalera, cos i peu.
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");Il·lustracions i figures
IllustrationElement embolica imatges a l’arbre d’estructura.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Tipus d’elements d’estructura
L’API admet el conjunt complet de tipus d’elements d’estructura PDF:
- A nivell de bloc: Paràgraf, Capçalera (H1-H6), Llista, Element de llista, Taula, Cita en bloc, Codi
- En línia: Fragment, Enllaç, Anotació, Figura, Fórmula
- Agrupació: Divisió, Article, Secció, Part
Consells i bones pràctiques
- Sempre establiu
TitleiLanguageaTaggedContentper al compliment de PDF/UA. - Construïu l’arbre d’estructura de dalt a baix: creeu elements i, a continuació, afegiu fills.
- Utilitzeu
SetAlternativeTexten elements figure per a l’accessibilitat de lectors de pantalla. - Etiqueteu les taules amb
THead,TBody,TFootper a una semàntica de taula adequada. - Valideu el compliment de PDF/UA amb
PdfFormatConversionOptions(vegeu la guia de conversió).
Problemes comuns
| Problema | Causa | Solució |
|---|---|---|
| La validació PDF/UA falla | L’arbre d’estructura manca d’elements obligatoris | Assegureu-vos que tot el contingut tingui elements d’estructura corresponents |
| L’ordre dels encapçalaments és incorrecte | H2 apareix abans de H1 | Seguiu la jerarquia seqüencial d’encapçalaments |
| La figura no té text alternatiu | SetAlternativeText no s’ha invocat | Proporcioneu sempre text alternatiu per a les il·lustracions |
| La taula no és reconeguda per l’screen reader | Falta l’estructura THead/TBody | Utilitzeu l’API d’estructura completa de taules |
Preguntes freqüents
Què és un PDF etiquetat?
Un PDF etiquetat inclou un arbre d’estructura lògica que assigna el contingut visual a elements semàntics (títols, paràgrafs, taules), permetent eines d’accessibilitat i reajustament del contingut.
És el PDF etiquetat el mateix que PDF/UA?
PDF/UA és un estàndard que requereix etiquetatge més regles d’accessibilitat addicionals.
Els PDFs etiquetats són un requisit previ per al compliment de PDF/UA.
Puc etiquetar un PDF existent?
L’API TaggedContent funciona millor amb documents creats des de zero. Per a PDFs existents, inspeccioneu l’arbre d’estructura a través de Document.TaggedContent.
Resum de la referència API
| Classe / Mètode | Descripció |
|---|---|
TaggedContent | Punt d’entrada per a operacions d’estructura lògica |
TaggedContent.SetTitle | Establir el títol del document per a l’accessibilitat |
TaggedContent.SetLanguage | Establir l’idioma del document |
ITaggedContent | Interfície amb mètodes de fàbrica per a tots els tipus d’element |
StructureElement | Classe base per a tots els elements d’estructura |
StructureElement.AppendChild | Afegir un element fill a l’arbre |
StructureElement.SetText | Establir el contingut de text d’un element |
TableElement | Element d’estructura de taula accessible |
TableElement.CreateTHead | Crear la secció de capçalera de la taula |
TableElement.CreateTBody | Crear la secció de cos de la taula |
TableTRElement | Element de fila de taula |
TableTRElement.CreateTD | Afegir una cel·la de dades |
TableTRElement.CreateTH | Afegir una cel·la de capçalera |
IllustrationElement | Element d’estructura de figura/il·lustració |
IllustrationElement.SetImage | Adjuntar una imatge a la il·lustració |