Structure logique

Structure logique

Les PDF contiennent un arbre de structure logique qui définit le document. Hierarchie sémantique — paragraphes, titres, tables, chiffres et listes. FOSS pour .NET fournit le TaggedContent API pour la construction et l’inspection Cette structure, qui est essentielle pour la conformité à l’accessibilité PDF/UA.


Accès à contenu tagé

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

Création d’éléments structurels

ITaggedContent fournit des méthodes de fabrication pour chaque élément structurel standard Les éléments sont assemblés dans un arbre en appelant 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);

Des tables structurées

TableElement Créez des tables accessibles avec la tête, le corps et les sections de pieds.

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");

Illustrations et chiffres

IllustrationElement Il crée des images dans l’arbre.

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

Type d’élément structurel

L’API prend en charge le ensemble complet de types d’éléments de structure PDF :

  • Niveau de blocs: Paragraphe, titre (H1-H6), liste, ListItem, tableau, BlockQuote, code
  • En ligne: Espagne, Lien, Annotation, Figure, Formule
  • Groupement: Division, article, section, partie

Conseils et meilleures pratiques

  • Toujours fixé Title et Language sur TaggedContent Pour la conformité PDF/UA.
  • Construisez l’arbre de structure en haut-bas: créez des éléments, puis appendrez les enfants.
  • Utiliser SetAlternativeText Les éléments figuratifs pour l’accessibilité du lecteur d’écran.
  • Télécharger les tables avec THead, TBody, TFoot Pour les sémantiques de table.
  • Valider la conformité PDF/UA avec le PdfFormatConversionOptions (voir le guide de conversion).

Les problèmes communs

ProblèmeCauseFixé
La validation PDF/UA est en échecLes éléments d’arbre manquants sont nécessairesAssurez-vous que tous les contenus ont des éléments de structure correspondants
L’ordre de tête est erronéH2 apparaît avant H1Suivez la hiérarchie de référence séquentielle
La photo n’a pas de texteSetAlternativeText Pas appeléToujours donner un texte pour les illustrations
Table non reconnue par le lecteur d’écranL’état de THead/TBodyUtilisez l’API de la structure de table complète

FAQ

Qu’est-ce qu’un PDF étiqueté ?

Un PDF étiqueté comprend un arbre de structure logique qui cartographie le contenu visuel aux éléments sémantiques (capitres, paragraphes, tables), permettant des outils d’accessibilité et du réfléchissement du contenus.

Le fichier PDF est-il identique à celui du PDF/UA ?

PDF/UA est une norme qui nécessite l’étiquetage plus des règles d’accessibilité supplémentaires. les PDF étiquées sont un prérequis pour la conformité avec le PDF / UA.

Puis-je étiqueter un PDF existant ?

Le TaggedContent API fonctionne le mieux avec les documents créés à partir de scratch. PDF existants, inspecter l’arbre de structure par le biais du Document.TaggedContent.


Le résumé de référence API

Classes / MéthodesDescription
TaggedContentPoint d’entrée pour les opérations de structure logique
TaggedContent.SetTitleDéfinir le titre de document pour l’accessibilité
TaggedContent.SetLanguageDéfinir le langage du document
ITaggedContentInterface avec les méthodes de fabrication pour tous les types d’éléments
StructureElementClasses de base pour tous les éléments structurels
StructureElement.AppendChildAjoutez un élément enfant à l’arbre
StructureElement.SetTextDéfinir le contenu d’un élément
TableElementÉlément de structure de table accessible
TableElement.CreateTHeadCréer la section de table-titre
TableElement.CreateTBodyCréer la section du corps de table
TableTRElementTableau d’élément
TableTRElement.CreateTDAjouter une cellule de données
TableTRElement.CreateTHAjouter une cellule de tête
IllustrationElementÉlément de la structure / image
IllustrationElement.SetImageAjouter une image à l’illustration

Voir aussi

 Français