Struttura logica

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 Title e Language su TaggedContent per la conformità PDF/UA.
  • Costruisci l’albero di struttura dall’alto verso il basso: crea gli elementi, poi aggiungi i figli.
  • Usa SetAlternativeText sugli elementi figure per l’accessibilità dei lettori di schermo.
  • Etichetta le tabelle con THead, TBody, TFoot per una corretta semantica delle tabelle.
  • Convalida la conformità PDF/UA con PdfFormatConversionOptions (vedi Guida alla conversione).

Problemi comuni

ProblemaCausaCorrezione
Convalida PDF/UA fallitaAlbero di struttura mancante di elementi richiestiAssicurarsi che tutto il contenuto abbia gli elementi di struttura corrispondenti
Ordine delle intestazioni erratoH2 appare prima di H1Seguire la gerarchia sequenziale delle intestazioni
Figura senza testo alternativoSetAlternativeText non chiamatoFornire sempre testo alternativo per le illustrazioni
Tabella non riconosciuta dallo screen readerStruttura THead/TBody mancanteUtilizzare 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 / MetodoDescrizione
TaggedContentPunto di ingresso per le operazioni di struttura logica
TaggedContent.SetTitleImposta il titolo del documento per l’accessibilità
TaggedContent.SetLanguageImposta la lingua del documento
ITaggedContentInterfaccia con i metodi factory per tutti i tipi di elemento
StructureElementClasse base per tutti gli elementi di struttura
StructureElement.AppendChildAggiungi un elemento figlio all’albero
StructureElement.SetTextImposta il contenuto testuale di un elemento
TableElementElemento di struttura tabella accessibile
TableElement.CreateTHeadCrea la sezione dell’intestazione della tabella
TableElement.CreateTBodyCrea la sezione del corpo della tabella
TableTRElementElemento riga della tabella
TableTRElement.CreateTDAggiungi una cella dati
TableTRElement.CreateTHAggiungi una cella di intestazione
IllustrationElementElemento di struttura figura/illustrazione
IllustrationElement.SetImageAllega un’immagine all’illustrazione

Vedi anche

 Italiano