Struttura logica
Struttura logica
I PDF con tag includono un albero di struttura logica che definisce la gerarchia semantica del documento — paragrafi, intestazioni, tabelle, figure e elenchi. Aspose.PDF FOSS for .NET fornisce l’API TaggedContent per creare e ispezionare questa struttura, che è essenziale per la conformità di accessibilità PDF/UA.
Accesso al contenuto etichettato
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Creazione di elementi di struttura
ITaggedContent fornisce metodi factory per ogni tipo di elemento di struttura standard. Gli elementi vengono assemblati in un albero chiamando 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);Tabelle strutturate
TableElement crea tabelle accessibili con le sezioni head, body e footer.
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");Illustrazioni e figure
IllustrationElement incapsula le immagini nell’albero di struttura.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Tipi di elemento di struttura
L’API supporta l’intero set di tipi di elementi di struttura PDF:
- Livello di blocco: Paragrafo, Intestazione (H1-H6), Elenco, Elemento di elenco, Tabella, Citazione a blocco, Codice
- In linea: Span, Collegamento, Annotazione, Figura, Formula
- Raggruppamento: Divisione, Articolo, Sezione, Parte
Suggerimenti e migliori pratiche
- Imposta sempre
TitleeLanguagesuTaggedContentper la conformità PDF/UA. - Costruisci l’albero di struttura dall’alto verso il basso: crea gli elementi, poi aggiungi i figli.
- Usa
SetAlternativeTextsugli elementi figure per l’accessibilità dei lettori di schermo. - Etichetta le tabelle con
THead,TBody,TFootper una corretta semantica delle tabelle. - Convalida la conformità PDF/UA con
PdfFormatConversionOptions(vedi Guida alla conversione).
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| Convalida PDF/UA fallita | Albero di struttura mancante di elementi richiesti | Assicurarsi che tutto il contenuto abbia gli elementi di struttura corrispondenti |
| Ordine delle intestazioni errato | H2 appare prima di H1 | Seguire la gerarchia sequenziale delle intestazioni |
| Figura senza testo alternativo | SetAlternativeText non chiamato | Fornire sempre testo alternativo per le illustrazioni |
| Tabella non riconosciuta dallo screen reader | Struttura THead/TBody mancante | Utilizzare l’API completa per la struttura della tabella |
FAQ
Che cos’è un PDF con tag?
Un PDF con tag include un albero di struttura logica che mappa il contenuto visivo a elementi semantici (intestazioni, paragrafi, tabelle), consentendo strumenti di accessibilità e il reflow del contenuto.
Il PDF con tag è lo stesso di PDF/UA?
PDF/UA è uno standard che richiede il tagging più ulteriori regole di accessibilità.
I PDF con tag sono un prerequisito per la conformità a PDF/UA.
Posso taggare un PDF esistente?
L’API TaggedContent funziona al meglio con documenti creati da zero. Per i PDF esistenti, ispeziona l’albero di struttura tramite Document.TaggedContent.
Riepilogo del Riferimento API
| Classe / Metodo | Descrizione |
|---|---|
TaggedContent | Punto di ingresso per le operazioni di struttura logica |
TaggedContent.SetTitle | Imposta il titolo del documento per l’accessibilità |
TaggedContent.SetLanguage | Imposta la lingua del documento |
ITaggedContent | Interfaccia con i metodi factory per tutti i tipi di elemento |
StructureElement | Classe base per tutti gli elementi di struttura |
StructureElement.AppendChild | Aggiungi un elemento figlio all’albero |
StructureElement.SetText | Imposta il contenuto testuale di un elemento |
TableElement | Elemento di struttura tabella accessibile |
TableElement.CreateTHead | Crea la sezione dell’intestazione della tabella |
TableElement.CreateTBody | Crea la sezione del corpo della tabella |
TableTRElement | Elemento riga della tabella |
TableTRElement.CreateTD | Aggiungi una cella dati |
TableTRElement.CreateTH | Aggiungi una cella di intestazione |
IllustrationElement | Elemento di struttura figura/illustrazione |
IllustrationElement.SetImage | Allega un’immagine all’illustrazione |