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é
TitleetLanguagesurTaggedContentPour la conformité PDF/UA. - Construisez l’arbre de structure en haut-bas: créez des éléments, puis appendrez les enfants.
- Utiliser
SetAlternativeTextLes éléments figuratifs pour l’accessibilité du lecteur d’écran. - Télécharger les tables avec
THead,TBody,TFootPour les sémantiques de table. - Valider la conformité PDF/UA avec le
PdfFormatConversionOptions(voir le guide de conversion).
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
| La validation PDF/UA est en échec | Les éléments d’arbre manquants sont nécessaires | Assurez-vous que tous les contenus ont des éléments de structure correspondants |
| L’ordre de tête est erroné | H2 apparaît avant H1 | Suivez la hiérarchie de référence séquentielle |
| La photo n’a pas de texte | SetAlternativeText Pas appelé | Toujours donner un texte pour les illustrations |
| Table non reconnue par le lecteur d’écran | L’état de THead/TBody | Utilisez 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éthodes | Description |
|---|---|
TaggedContent | Point d’entrée pour les opérations de structure logique |
TaggedContent.SetTitle | Définir le titre de document pour l’accessibilité |
TaggedContent.SetLanguage | Définir le langage du document |
ITaggedContent | Interface avec les méthodes de fabrication pour tous les types d’éléments |
StructureElement | Classes de base pour tous les éléments structurels |
StructureElement.AppendChild | Ajoutez un élément enfant à l’arbre |
StructureElement.SetText | Définir le contenu d’un élément |
TableElement | Élément de structure de table accessible |
TableElement.CreateTHead | Créer la section de table-titre |
TableElement.CreateTBody | Créer la section du corps de table |
TableTRElement | Tableau d’élément |
TableTRElement.CreateTD | Ajouter une cellule de données |
TableTRElement.CreateTH | Ajouter une cellule de tête |
IllustrationElement | Élément de la structure / image |
IllustrationElement.SetImage | Ajouter une image à l’illustration |