Structură logică
Structură logică
PDF-urile etichetate includ un arbore de structură logică care definește ierarhia semantică a documentului
— paragrafe, titluri, tabele, figuri și liste. Aspose.PDF
FOSS pentru .NET oferă API-ul TaggedContent pentru construirea și inspectarea
acestei structuri, care este esențială pentru conformitatea accesibilității PDF/UA.
Accesarea conținutului etichetat
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Crearea elementelor de structură
ITaggedContent furnizează metode de fabrică pentru fiecare tip de element de structură standard. Elementele sunt asamblate într-un arbore prin apelarea 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);Tabele structurate
TableElement creează tabele accesibile cu secțiuni de antet, corp și subsol.
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");Ilustrații și figuri
IllustrationElement împachetează imaginile în arborele de structură.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Tipuri de elemente de structură
API-ul acceptă setul complet de tipuri de elemente de structură PDF:
- Nivel bloc: Paragraf, Titlu (H1-H6), Listă, Element de listă, Tabel, Citat bloc, Cod
- În linie: Span, Legătură, Anotație, Figură, Formulă
- Grupare: Diviziune, Articol, Secțiune, Parte
Sfaturi și cele mai bune practici
- Întotdeauna setați
TitleșiLanguagepeTaggedContentpentru conformitatea PDF/UA. - Construiți arborele de structură de sus în jos: creați elemente, apoi adăugați copii.
- Utilizați
SetAlternativeTextpe elementele figure pentru accesibilitatea cititorului de ecran. - Etichetați tabelele cu
THead,TBody,TFootpentru o semantică corectă a tabelului. - Validați conformitatea PDF/UA cu
PdfFormatConversionOptions(consultați ghidul de conversie).
Probleme comune
| Problem | Cauză | Remediere |
|---|---|---|
| Validarea PDF/UA eșuează | Arborele de structură nu conține elementele necesare | Asigurați-vă că tot conținutul are elemente de structură corespunzătoare |
| Ordinea titlurilor este incorectă | H2 apare înainte de H1 | Respectați ierarhia secvențială a titlurilor |
| Figura nu are text alternativ | SetAlternativeText nu este apelat | Furnizați întotdeauna text alternativ pentru ilustrații |
| Tabelul nu este recunoscut de cititorul de ecran | Structura THead/TBody lipsește | Utilizați API-ul complet pentru structura tabelului |
Întrebări frecvente
Ce este un PDF etichetat?
Un PDF etichetat include un arbore de structură logică care mapează conținutul vizual la elemente semantice (titluri, paragrafe, tabele), permițând instrumentelor de accesibilitate și rearanjarea conținutului.
Este PDF etichetat același lucru cu PDF/UA?
PDF/UA este un standard care necesită etichetare plus reguli suplimentare de accesibilitate.
PDF-urile etichetate sunt o condiție prealabilă pentru conformitatea cu PDF/UA.
Pot să etichetez un PDF existent?
API-ul TaggedContent funcționează cel mai bine cu documente create de la zero. Pentru PDF-urile existente, inspectați arborele de structură prin Document.TaggedContent.
Rezumatul referinței API
| Class / Method | Description |
|---|---|
TaggedContent | Punct de intrare pentru operațiuni de structură logică |
TaggedContent.SetTitle | Setează titlul documentului pentru accesibilitate |
TaggedContent.SetLanguage | Setează limba documentului |
ITaggedContent | Interfață cu metodele fabrică pentru toate tipurile de elemente |
StructureElement | Clasă de bază pentru toate elementele de structură |
StructureElement.AppendChild | Adaugă un element copil în arbore |
StructureElement.SetText | Setează conținutul text al unui element |
TableElement | Element de structură tabel accesibil |
TableElement.CreateTHead | Creează secțiunea antet a tabelului |
TableElement.CreateTBody | Creează secțiunea corp a tabelului |
TableTRElement | Element rând de tabel |
TableTRElement.CreateTD | Adaugă o celulă de date |
TableTRElement.CreateTH | Adaugă o celulă de antet |
IllustrationElement | Element de structură figură/ilustrație |
IllustrationElement.SetImage | Atașează o imagine la ilustrație |