Utilisation de la Table des matières
Souvent, vous travaillerez avec des documents contenant une table des matières (TOC). En utilisant Aspose.Words, vous pouvez insérer votre propre table des matières ou reconstruire complètement la table des matières existante dans le document en utilisant seulement quelques lignes de code.
Cet article explique comment utiliser le champ Table des matières et démontre:
- Comment insérer un tout nouveau TOC.
- Mettez à jour TOCs nouveau ou existant dans le document.
- Spécifiez des commutateurs pour contrôler la mise en forme et la structure globale du TOC.
- Comment modifier les styles et l’apparence de la table des matières.
- Comment supprimer un champ
TOC
entier ainsi que toutes les entrées du document.
Insérer la Table des matières par programmation
Vous pouvez insérer un champ TOC
(table des matières) dans le document à la position actuelle en appelant la méthode InsertTableOfContents.
Une table des matières dans un document Word peut être construite de plusieurs manières et formatée à l’aide de diverses options. Les commutateurs de champ que vous transmettez à la méthode contrôlent la manière dont le tableau est construit et affiché dans votre document.
Les commutateurs par défaut utilisés dans un TOC
inséré dans Microsoft Word sont "\o “1-3 \h \z \u”. Des descriptions de ces commutateurs ainsi qu’une liste des commutateurs pris en charge peuvent être trouvées plus loin dans l’article. Vous pouvez soit utiliser ce guide pour obtenir les commutateurs corrects, soit si vous avez déjà un document contenant le TOC
similaire que vous souhaitez, vous pouvez afficher les codes de champ (ALT+F9) et copier les commutateurs directement à partir du champ.
L’exemple de code suivant montre comment insérer un champ de Table des matières dans un document:
L’exemple de code suivant montre comment insérer une table des matières (TOC) dans un document en utilisant des styles de titre comme entrées:
Le code montre que la nouvelle table des matières est insérée dans un document vierge. La classe DocumentBuilder est ensuite utilisée pour insérer un exemple de formatage de contenu avec les styles de titre appropriés qui sont utilisés pour marquer le contenu à inclure dans le TOC. Les lignes suivantes remplissent ensuite le TOC
en mettant à jour les champs et la mise en page du document.
TOC
, mais sans contenu visible. C’est parce que le champ TOC
a été inséré mais n’est pas encore rempli tant qu’il n’est pas mis à jour dans le document. De plus amples informations à ce sujet sont discutées dans la section suivante.
Mettre à jour la Table des matières
Aspose.Words vous permet de mettre à jour complètement un TOC
avec seulement quelques lignes de code. Cela peut être fait pour remplir un TOC
nouvellement inséré ou pour mettre à jour un TOC
existant après que des modifications aient été apportées au document.
Les deux méthodes suivantes doivent être utilisées pour mettre à jour les champs TOC
dans le document:
Veuillez noter que ces deux méthodes de mise à jour doivent être appelées dans cet ordre. En cas d’inversion, la table des matières sera remplie mais aucun numéro de page ne sera affiché. N’importe quel nombre de TOCs différents peut être mis à jour. Ces méthodes mettront automatiquement à jour tous les TOCs trouvés dans le document.
L’exemple de code suivant montre comment reconstruire complètement les champs TOC
dans le document en appelant les mises à jour des champs:
Le premier appel à Document.updateFields() construira le TOC
, toutes les entrées de texte sont remplies et le TOC
apparaît presque terminé. La seule chose qui manque, ce sont les numéros de page qui pour l’instant sont affichés avec “?”.
Le deuxième appel à Document.updatePageLayout() construira la mise en page du document en mémoire. Cela doit être fait pour rassembler les numéros de page des entrées. Les numéros de page corrects calculés à partir de cet appel sont ensuite insérés dans le TOC.
Utilisez des commutateurs pour contrôler le comportement de la Table des matières
Comme pour tout autre champ, le champ TOC
peut accepter des commutateurs définis dans le code de champ qui contrôle la construction de la table des matières. Certains commutateurs sont utilisés pour contrôler quelles entrées sont incluses et à quel niveau tandis que d’autres sont utilisés pour contrôler l’apparence du TOC. Les commutateurs peuvent être combinés entre eux pour permettre la production d’une table des matières complexe.
Par défaut, ces commutateurs ci-dessus sont inclus lors de l’insertion d’un TOC
par défaut dans le document. Un TOC
sans commutateur inclura le contenu des styles de titre intégrés (comme si le commutateur \O était défini).
Les commutateurs TOC
disponibles pris en charge par Aspose.Words sont répertoriés ci-dessous et leurs utilisations sont décrites en détail. Ils peuvent être divisés en sections distinctes en fonction de leur type. Les commutateurs de la première section définissent le contenu à inclure dans le TOC
et les commutateurs de la deuxième section contrôlent l’apparence du TOC.
Si un commutateur n’est pas répertorié ici, il n’est actuellement pas pris en charge. Tous les commutateurs seront pris en charge dans les versions futures. Nous ajoutons un support supplémentaire à chaque version.
Interrupteurs de Marquage D’Entrée
Commutateur | Descriptif |
---|---|
Heading Styles * (\O Commutateur)* |
Ce commutateur définit que le
|
Outline Levels (\U switch) |
Chaque paragraphe peut définir un niveau de contour sous Options de paragraphe.
Notez que les styles de titre intégrés tels que Heading 1 ont un niveau de contour obligatoire défini dans les paramètres de style.
|
Custom Styles * (\T commutateur)* |
Ce commutateur permettra d’utiliser des styles personnalisés lors de la collecte des entrées à utiliser dans le TOC. Ceci est souvent utilisé en conjonction avec le commutateur \O pour inclure des styles personnalisés ainsi que des styles de titre intégrés dans le TOC.
utilisera le contenu stylisé avec CustomHeading1 comme contenu de niveau 1 dans |
Utiliser les champs TC * (Commutateurs\F et \L)* |
Dans les anciennes versions de Microsoft Word, la seule façon de construire un Ces champs peuvent être insérés dans un document à n’importe quelle position comme n’importe quel autre champ et sont représentés par l’énumération
n’inclura que les champs TC tels que
Le champ
– \ F-Expliqué ci-dessus. - \L-Définit dans quel niveau dans le - |
Commutateurs Liés à l’Apparence
Commutateur | Descriptif |
---|---|
Omit Page Numbers * (\N Commutateur)* |
Ce commutateur est utilisé pour masquer les numéros de page pour certains niveaux du TOC. Par exemple, vous pouvez définir
et les numéros de page sur les entrées des niveaux 3 et quatre seront masqués avec les points de repère (s’il y en a). Pour spécifier un seul niveau, une plage doit toujours être utilisée, par exemple, “1-1” exclura les numéros de page uniquement pour le premier niveau. |
Insérer En Tant Qu’Hyperliens * (Commutateur\H)* |
Ce commutateur spécifie que |
Set Separator Character * (Commutateur\P)* |
Ce commutateur permet de modifier facilement le contenu séparant le titre de l’entrée et la numérotation des pages dans le TOC. Le séparateur à utiliser doit être spécifié après ce commutateur et entouré de marques vocales. |
Preserve Tab Entries * (Commutateur\W)* |
L’utilisation de ce commutateur spécifiera que toutes les entrées qui ont un caractère de tabulation, par exemple, un en-tête qui a un onglet à la fin de la ligne, seront conservées en tant que caractère de tabulation approprié lors du remplissage du TOC. Cela signifie que la fonction du caractère de tabulation sera présente dans le |
Preserve New Line Entries * (\X Commutateur)* |
Semblable au commutateur ci-dessus, ce commutateur spécifie que les en-têtes s’étendant sur plusieurs lignes (en utilisant des caractères de nouvelle ligne, pas des paragraphes séparés) seront conservés tels qu’ils sont dans le TOC généré. Par exemple, un en-tête qui doit s’étendre sur plusieurs lignes peut utiliser le caractère de nouvelle ligne (Ctrl + Entrée ou |
Insérer des champs TC
Vous pouvez insérer un nouveau champ TC à la position actuelle du DocumentBuilder
en appelant la méthode DocumentBuilder.InsertField
et en spécifiant le nom du champ comme “TC " avec tous les commutateurs nécessaires.
L’exemple de code suivant montre comment insérer un champ TC
dans le document à l’aide de DocumentBuilder.
Souvent, une ligne de texte spécifique est désignée pour le TOC
et est marquée d’un champ TC
. Le moyen le plus simple de le faire dans MS Word est de surligner le texte et d’appuyer sur ALT+SHIFT+O. Cela crée automatiquement un champ TC
en utilisant le texte sélectionné. La même technique peut être accomplie par le code. Le code ci-dessous trouvera le texte correspondant à l’entrée et insérera un champ TC
à la même position que le texte. Le code est basé sur la même technique utilisée dans l’article. L’exemple de code suivant montre comment rechercher et insérer un champ TC
au niveau du texte dans un document.
Modifier une Table des matières
Modifier la mise en forme des styles
Le formatage des entrées dans le TOC
n’utilise pas les styles d’origine des entrées marquées, à la place, chaque niveau est formaté en utilisant un style TOC
équivalent. Par exemple, le premier niveau du TOC
est formaté avec le style TOC1, le deuxième niveau formaté avec le style TOC2 et ainsi de suite. Cela signifie que pour changer l’apparence des TOC
, ces styles doivent être modifiés. Dans Aspose.Words, ces styles sont représentés par les paramètres régionaux indépendants de StyleIdentifier.TOC1
à StyleIdentifier.TOC9
et peuvent être récupérés à partir de la collection Document.Styles
à l’aide de ces identifiants.
Une fois que le style approprié du document a été récupéré, la mise en forme de ce style peut être modifiée. Toute modification de ces styles sera automatiquement reflétée dans le TOCs du document.
L’exemple de code suivant modifie une propriété de formatage utilisée dans le style de premier niveau TOC
.
Il est également utile de noter que tout formatage direct d’un paragraphe (défini sur le paragraphe lui-même et non dans le style) marqué pour être inclus dans le TOC
sera copié dans l’entrée du TOC. Par exemple, si le style Heading 1 est utilisé pour marquer le contenu du TOC
et que ce style a une mise en forme en gras tandis que le paragraphe a également une mise en forme en italique directement appliquée. L’entrée TOC
résultante ne sera pas en gras car cela fait partie de la mise en forme du style, mais elle sera en italique car elle est directement formatée sur le paragraphe.
Vous pouvez également contrôler la mise en forme des séparateurs utilisés entre chaque entrée et le numéro de page. Par défaut, il s’agit d’une ligne pointillée qui est répartie sur la numérotation des pages à l’aide d’un caractère de tabulation et d’un taquet de tabulation droit aligné près de la marge de droite.
En utilisant la classe Style
récupérée pour le niveau TOC
particulier que vous souhaitez modifier, vous pouvez également modifier leur apparence dans le document.
Pour changer la façon dont cela apparaît, il faut d’abord appeler Style.ParagraphFormat
pour récupérer la mise en forme du paragraphe pour le style. À partir de là, les taquets de tabulation peuvent être récupérés en appelant ParagraphFormat.TabStops
et le taquet de tabulation approprié modifié. En utilisant cette même technique, l’onglet lui-même peut être déplacé ou supprimé complètement.
L’exemple de code suivant montre comment modifier la position du taquet de tabulation de droite dans les paragraphes associés TOC
.
Supprimer une Table des matières du document
Une table des matières peut être supprimée du document en supprimant tous les nœuds trouvés entre les nœuds FieldStart
et FieldEnd du champ TOC
.
Le code ci-dessous le démontre. La suppression du champ TOC
est plus simple qu’un champ normal car nous ne gardons pas trace des champs imbriqués. Au lieu de cela, nous vérifions que le nœud FieldEnd
est de type FieldType.FieldTOC
, ce qui signifie que nous avons rencontré la fin du TOC actuel. Cette technique peut être utilisée dans ce cas sans se soucier des champs imbriqués, car nous pouvons supposer que tout document correctement formé n’aura pas de champ TOC
entièrement imbriqué dans un autre champ TOC
.
Tout d’abord, les FieldStart
nœuds de chaque TOC
sont collectés et stockés. Le TOC
spécifié est ensuite énuméré afin que tous les nœuds du champ soient visités et stockés. Les nœuds sont ensuite supprimés du document. L’exemple de code suivant montre comment supprimer un TOC
spécifié d’un document.
Extraire la Table des matières
Si vous souhaitez extraire une table des matières de n’importe quel document Word, l’exemple de code suivant peut être utilisé.