Estrutura lógica

Estrutura lógica

Os PDFs marcados incluem uma árvore de estrutura lógica que define a estrutura do documento. hierarquia semântica parágrafos, títulos, tabelas, figuras e listas. O FOSS para .NET fornece o TaggedContent API para construção e inspecção Esta estrutura é essencial para a conformidade com o PDF/UA.


Acesso ao conteúdo marcado

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

Criação de elementos estruturais

ITaggedContent fornece métodos de fábrica para cada elemento da estrutura padrão; Os elementos são montados em uma árvore chamando a 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 secções de cabeça, 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 estruturais

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

  • Nível de bloco:Parágrafo, Rubrica (H1-H6), Lista, item da lista, Tabela, Quota de bloco, Código
  • Inline (em linha): Duração, ligação , anotações , figura , fórmula
  • Grupamento: Divisão, Artigo, Secção, Parte

Dicas e melhores práticas

  • Sempre definido. Title e a) Language em 1 de Setembro de TaggedContent para a conformidade com o PDF/UA.
  • Construir a árvore de estrutura de cima para baixo: criar elementos, depois adicionar crianças.
  • Utilização: SetAlternativeText sobre elementos de figuras para a acessibilidade do leitor de ecrã.
  • Marcar tabelas com: THead, TBody, TFoot para a semântica correta da tabela.
  • Validar a conformidade PDF/UA com o PdfFormatConversionOptions (ver Guia de conversão).

Problemas comuns

EmissãoCausa da morteCorreção
Falha na validação PDF/UAÁrvore de estrutura com elementos não disponíveisGarantir que todo o conteúdo tenha elementos de estrutura correspondentes
A ordem de direcção é errada .H2 aparece antes de H1Seguir a hierarquia de cabeçalhos sequencialmente
A figura não tem texto alternativo.SetAlternativeText não chamado.Fornecer sempre texto alternativo para ilustrações.
Tabela não reconhecida pelo leitor de telaFalta de estrutura THead/TBodyUse a API de estrutura completa da tabela

FAQ

O que é um PDF com etiquetas?

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 refluxo de conteúdos.

O PDF é etiquetado como o mesmo que o PDF/UA?

PDF/UA é um padrão que requer etiquetagem e regras adicionais de acessibilidade. Os PDFs marcados são um pré-requisito para a conformidade com o PDF / UA .

Posso marcar um PDF existente?

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


Resumo de referência da API

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

Ver também:

 Português