Estrutura Lógica

Estrutura Lógica

Estrutura Lógica

Os PDFs marcados incluem uma árvore de estrutura lógica que define a hierarquia semântica do documento — parágrafos, títulos, tabelas, figuras e listas. Aspose.PDF FOSS for .NET fornece a API TaggedContent para construir e inspecionar essa estrutura, que é essencial para a conformidade de acessibilidade PDF/UA.


Acessando conteúdo marcado

using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");

Criando elementos de estrutura

ITaggedContent fornece métodos de fábrica para cada tipo padrão de elemento de estrutura. Os elementos são montados em uma árvore chamando 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);

Tabelas estruturadas

TableElement cria tabelas acessíveis com seções de cabeçalho, corpo e rodapé.

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ções e figuras

IllustrationElement envolve imagens na árvore de estrutura.

var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);

Tipos de elementos de estrutura

A API suporta o conjunto completo de tipos de elementos de estrutura PDF:

  • Block-level: Parágrafo, Título (H1-H6), Lista, Item de Lista, Tabela, Citação em bloco, Código
  • Inline: Span, Link, Anotação, Figura, Fórmula
  • Grouping: Divisão, Artigo, Seção, Parte

Dicas e Melhores Práticas

  • Sempre defina Title e Language em TaggedContent para conformidade PDF/UA.
  • Construa a árvore de estrutura de cima para baixo: crie os elementos, depois anexe os filhos.
  • Use SetAlternativeText em elementos de figura para acessibilidade de leitores de tela.
  • Marque tabelas com THead, TBody, TFoot para semântica de tabela adequada.
  • Valide a conformidade PDF/UA com PdfFormatConversionOptions (consulte o guia de Conversão).

Problemas Comuns

ProblemaCausaCorreção
Falha na validação PDF/UAÁrvore de estrutura ausente elementos obrigatóriosGarantir que todo o conteúdo tenha elementos de estrutura correspondentes
Ordem dos títulos está erradaH2 aparece antes de H1Seguir hierarquia sequencial de títulos
Figura sem texto alternativoSetAlternativeText não chamadoSempre forneça texto alternativo para ilustrações
Tabela não reconhecida pelo leitor de telaEstrutura THead/TBody ausenteUse a API completa de estrutura de tabela

Perguntas Frequentes

O que é um PDF marcado?

Um PDF marcado inclui uma árvore de estrutura lógica que mapeia o conteúdo visual para elementos semânticos (títulos, parágrafos, tabelas), permitindo ferramentas de acessibilidade e reflow de conteúdo.

Um PDF marcado é o mesmo que PDF/UA?

PDF/UA é um padrão que requer marcação além de regras adicionais de acessibilidade.
PDFs marcados são um pré-requisito para conformidade com PDF/UA.

Posso marcar um PDF existente?

A API TaggedContent funciona melhor com documentos criados do zero. Para PDFs existentes, inspecione a árvore de estrutura através de Document.TaggedContent.


Resumo da Referência da API

Classe / MétodoDescrição
TaggedContentPonto de entrada para operações de estrutura lógica
TaggedContent.SetTitleDefinir o título do documento para acessibilidade
TaggedContent.SetLanguageDefinir o idioma do documento
ITaggedContentInterface com métodos de fábrica para todos os tipos de elemento
StructureElementClasse base para todos os elementos de estrutura
StructureElement.AppendChildAdicionar um elemento filho à árvore
StructureElement.SetTextDefinir o conteúdo de texto de um elemento
TableElementElemento de estrutura de tabela acessível
TableElement.CreateTHeadCriar a seção de cabeçalho da tabela
TableElement.CreateTBodyCriar a seção de corpo da tabela
TableTRElementElemento de linha de tabela
TableTRElement.CreateTDAdicionar uma célula de dados
TableTRElement.CreateTHAdicionar uma célula de cabeçalho
IllustrationElementElemento de estrutura de figura/ilustração
IllustrationElement.SetImageAnexar uma imagem à ilustração

Veja Também

 Português