Générer une table des matières navigable est essentiel lors de la création de gros rapports Word ou de manuels que les utilisateurs doivent parcourir rapidement. Conholdate.Total for Java fournit un SDK robuste qui simplifie le travail avec les fichiers DOCX directement depuis les applications Java. Dans ce guide étape par étape, vous apprendrez comment ajouter une table des matières à un document Word en Java, en couvrant la configuration, l’explication du code et les meilleures pratiques.

Exemple complet fonctionnel d’ajout d’une table des matières à un document Word en Java

L’exemple suivant montre comment insérer une table des matières dans un fichier DOCX existant en utilisant Conholdate.Total for Java.

import com.groupdocs.words.Document;
import com.groupdocs.words.DocumentBuilder;
import com.groupdocs.words.TableOfContentsOptions;
import com.groupdocs.words.SaveFormat;
import com.groupdocs.words.TabLeader;

public class AddTableOfContentsExample {
    public static void main(String[] args) throws Exception {
        // Paths to the source and destination Word documents
        String inputPath = "input.docx";
        String outputPath = "output.docx";

// Load the existing document, add a TOC, and save the result
        try (Document doc = new Document(inputPath)) {
            DocumentBuilder builder = new DocumentBuilder(doc);

// Move cursor to the beginning of the document where the TOC will be inserted
            builder.moveToDocumentStart();

// Configure TOC options
            TableOfContentsOptions tocOptions = new TableOfContentsOptions();
            tocOptions.setUpperHeadingLevel(1);          // Include headings from level 1
            tocOptions.setLowerHeadingLevel(3);          // up to level 3
            tocOptions.setRightAlignPageNumbers(true);  // Align page numbers to the right
            tocOptions.setUseHyperlinks(true);           // Make entries clickable
            tocOptions.setTabLeader(TabLeader.DOTS);     // Use dotted leader

// Insert the Table of Contents
            builder.insertTableOfContents(tocOptions);

// Save the modified document
            doc.save(outputPath, SaveFormat.DOCX);
        }
    }
}

Remarque : Cet exemple de code montre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (input.docx, output.docx, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Comprendre l’ajout de la table des matières à un document Word en code Java

Voici une répartition des principales étapes effectuées par le code d’exemple :

  1. Charger le document source - La classe Document lit le fichier DOCX existant.

    try (Document doc = new Document(inputPath)) {
    
  2. Créer un DocumentBuilder - DocumentBuilder fournit des méthodes pour modifier le contenu du document.

DocumentBuilder builder = new DocumentBuilder(doc);
  1. Positionner le curseur - moveToDocumentStart() déplace le point d’insertion au tout début du fichier, garantissant que la table des matières apparaît avant tout le contenu.
builder.moveToDocumentStart();
  1. Configurer les options de TOC - TableOfContentsOptions vous permet de définir les niveaux de titres, l’alignement des numéros de page, l’utilisation des hyperliens et le style du leader de tabulation.
TableOfContentsOptions tocOptions = new TableOfContentsOptions();
tocOptions.setUpperHeadingLevel(1);
tocOptions.setLowerHeadingLevel(3);
tocOptions.setRightAlignPageNumbers(true);
tocOptions.setUseHyperlinks(true);
tocOptions.setTabLeader(TabLeader.DOTS);

Une référence détaillée de l’API est disponible sur la page Référence API.

  1. Insérer la table des matières et enregistrer - insertTableOfContents ajoute le champ, et doc.save écrit le fichier mis à jour au format DOCX.
builder.insertTableOfContents(tocOptions);
doc.save(outputPath, SaveFormat.DOCX);

Installation et configuration de Conholdate.Total for Java

Ajoutez le référentiel Maven Conholdate et la dépendance SDK à votre pom.xml :

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Téléchargez le dernier package SDK depuis la page de téléchargement. Le SDK nécessite Java 8 ou une version supérieure et fonctionne sur n’importe quelle JVM standard. Aucun composant d’exécution supplémentaire n’est requis.

Meilleures pratiques pour générer une table des matières Word avec Java

  • Utilisez des styles de titres cohérents - La TOC détecte les paragraphes formatés avec les niveaux de titres intégrés (Titre 1, Titre 2, etc.). Assurez‑vous que votre document source utilise ces styles pour une génération fiable des entrées.
  • Limitez la profondeur des titres - Inclure trop de niveaux peut rendre la TOC difficile à gérer. Les rapports typiques utilisent les niveaux 1‑3, comme le montre l’exemple.
  • Activez les hyperliens - Le réglage setUseHyperlinks(true) crée des entrées cliquables, améliorant la navigation dans le document final.
  • Validez après l’insertion - Ouvrez le DOCX généré et mettez à jour les champs (Ctrl +A, F9) pour vérifier que les numéros de page sont corrects, surtout après d’autres modifications.
  • Réutilisez l’objet d’options de la TOC - Si vous générez plusieurs documents en lot, configurez les options une fois et réutilisez‑les pour réduire la surcharge de création d’objets.

Conclusion

Ajouter une table des matières à un document Word en Java devient simple avec Conholdate.Total for Java. En chargeant un DOCX, en configurant TableOfContentsOptions et en insérant le champ, vous pouvez automatiser la création de rapports et de manuels professionnels. N’oubliez pas d’installer le SDK, de suivre les recommandations de bonnes pratiques et de tester la table des matières générée dans votre environnement cible. Pour les déploiements en production, vous aurez besoin d’une copie sous licence ; les détails des prix sont disponibles sur la page de tarification et une licence temporaire peut être obtenue depuis la page de licence temporaire.

FAQ

  • Quelle est la façon la plus simple d’ajouter une table des matières à un document Word en Java ?
    Utilisez DocumentBuilder.moveToDocumentStart() suivi de insertTableOfContents avec un objet TableOfContentsOptions configuré, comme le montre l’exemple de code.

  • Comment puis‑je contrôler quels niveaux de titres apparaissent dans la table des matières ?
    Définissez setUpperHeadingLevel et setLowerHeadingLevel sur l’instance TableOfContentsOptions pour n’inclure que les niveaux souhaités.

  • Est-il possible de générer une TOC pour un modèle Word qui sera rempli plus tard ?
    Oui. Insérez la TOC dans le fichier modèle avant de remplir le contenu dynamique ; la TOC référencera automatiquement les titres ajoutés ultérieurement.

  • Ai‑je besoin d’une connexion Internet pour utiliser ce SDK ?
    Non. Conholdate.Total for Java est une bibliothèque locale qui s’exécute sur votre serveur ou votre poste de travail sans aucun appel de service externe.

En savoir plus