Create TOC in Word

Une Table des Matières (TOC) est une fonctionnalité essentielle dans les documents Word, en particulier pour les documents volumineux tels que les rapports, thèses et eBooks. Elle rend les documents Word plus lisibles et permet aux lecteurs de naviguer rapidement à travers les différentes sections du document. Dans cet article, vous apprendrez comment automatiser la TOC dans les documents Word de manière programmatique en utilisant Python. Nous discuterons des étapes pour créer une table des matières dans un document Word, insérer une TOC dans un document existant, ou extraire une TOC d’un document en Python.

Cet article couvre les sujets suivants :

Bibliothèque Python pour travailler avec la TOC

Pour travailler avec la TOC dans les documents Word en utilisant Python, nous utiliserons la bibliothèque Aspose.Words pour Python. Elle permet aux développeurs de créer, modifier et automatiser des documents Word dans des applications Python. Commençons par configurer notre environnement.

Avant de plonger dans le code, assurez-vous d’avoir installé Aspose.Words pour Python. Vous pouvez télécharger le package ou installer l’API depuis PyPI en utilisant la commande pip suivante dans votre terminal :

pip install aspose-words

Cela téléchargera et installera la bibliothèque Aspose.Words pour Python et ses dépendances.

Créer une Table des Matières dans Word en utilisant Python

Veuillez suivre les étapes ci-dessous pour ajouter une table des matières à un document Word en utilisant Python.

  1. Créez une instance de la classe Document.
  2. Créez une instance de la classe DocumentBuilder avec l’objet Document.
  3. Insérez une table des matières en utilisant la méthode insert_table_of_contents().
  4. Spécifiez les styles de titre en utilisant la propriété style_identifier.
  5. Mettez à jour les champs en utilisant la méthode update_fields().
  6. Enregistrez le document Word en utilisant la méthode save().

L’exemple de code suivant montre comment créer une table des matières dans un document Word en utilisant Python.

# This code example shows how to add a Table of Contents in a Word document.
# Create a document
doc = aw.Document()
# Initialize a document builder
builder = aw.DocumentBuilder(doc)
# Insert table of contents
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u")
# Start the actual document content on the second page.
builder.insert_break(aw.BreakType.PAGE_BREAK)
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 1")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 1.1")
builder.writeln("Heading 1.2")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 2")
builder.writeln("Heading 3")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.1")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING3
builder.writeln("Heading 3.1.1")
builder.writeln("Heading 3.1.2")
builder.writeln("Heading 3.1.3")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.2")
builder.writeln("Heading 3.3")
# The newly inserted table of contents will be initially empty.
# It needs to be populated by updating the fields in the document.
doc.update_fields()
# Save the document
doc.save("insert_table_of_contents.docx")
Créer une Table des Matières dans Word en utilisant Python.

Ajouter une Table des Matières dans Word en utilisant Python

Créer une Table des Matières dans un Document Word Existant

Vous pouvez également insérer une table des matières dans un document Word existant en suivant les étapes ci-dessous :

  1. Chargez un document Word existant en utilisant la classe Document.
  2. Créez une instance de la classe DocumentBuilder et initialisez-la avec l’objet Document créé précédemment.
  3. Insérez une table des matières en utilisant la méthode insert_table_of_contents().
  4. Mettez à jour les champs en utilisant la méthode update_fields().
  5. Enregistrez le document Word en utilisant la méthode save().

L’exemple de code suivant montre comment créer une table des matières dans un document Word existant en utilisant Python.

# This code example shows how to insert a Table of Contents in an existing Word document.
# Load an existing Word document
doc = Document("toc_sample.docx");
builder = DocumentBuilder(doc);
# Insert a table of contents at the beginning of the document.
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u");
# The newly inserted table of contents will be initially empty.
# It needs to be populated by updating the fields in the document.
doc.update_fields();
# Save the document
doc.save("InsertTOC_out.docx");
Créer une Table des Matières dans un Document Word Existant.

Créer une Table des Matières dans un Document Word Existant

Extraire une Table des Matières d’un Document Word en Python

Vous pouvez extraire les champs d’une table des matières d’un document Word en suivant les étapes ci-dessous :

  1. Chargez le document Word en utilisant la classe Document.
  2. Parcourez la collection doc.range.fields.
  3. Vérifiez si le type de champ est FIELD_HYPERLINK.
  4. Vérifiez si le champ fait partie de la section table des matières.
  5. Récupérez les informations du champ et affichez-les.

L’exemple de code suivant montre comment extraire une table des matières d’un document Word en utilisant Python.

# This code example shows how to extract a Table of Contents from a Word document.
# Load an existing Word document
doc = aw.Document(InsertTOC_out.docx")
# Loop through all the fields
for field in doc.range.fields:
# Check if it is FIELD_HYPERLINK
if (field.type == aw.fields.FieldType.FIELD_HYPERLINK):
hyperlink = field.as_field_hyperlink()
# Check if it in TOC section
if (hyperlink.sub_address != None and hyperlink.sub_address.find("_Toc") == 0):
tocItem = field.start.get_ancestor(aw.NodeType.PARAGRAPH).as_paragraph()
print(tocItem.to_string(aw.SaveFormat.TEXT).strip())
print("------------------")
# Print
bm = doc.range.bookmarks.get_by_name(hyperlink.sub_address)
pointer = bm.bookmark_start.get_ancestor(aw.NodeType.PARAGRAPH).as_paragraph()
print(pointer.to_string(aw.SaveFormat.TEXT))
Titre 1        1
------------------
Titre 1

Titre 2        1
------------------
Titre 2

Un autre Titre 1
------------------
Un autre Titre

Obtenir une Licence Gratuite

Vous pouvez obtenir une licence temporaire gratuite et créer une table des matières dans les documents Word sans limitations d’évaluation.

TOC dans Word – Ressources Gratuites

En plus de travailler avec la TOC dans les documents Word, explorez plus de fonctionnalités d’Aspose.Words pour Python en utilisant les ressources ci-dessous :

Conclusion

Dans cet article, vous avez appris comment travailler avec une table des matières (TOC) dans un document Word de manière programmatique. En suivant les étapes décrites dans cet article, vous pouvez automatiser le processus de création et de gestion des documents volumineux. Aspose.Words pour Python vous permet de gérer efficacement vos documents Word et d’améliorer leur convivialité avec une Table des Matières bien structurée. Si vous avez des questions ou avez besoin d’une assistance supplémentaire, n’hésitez pas à nous contacter sur notre forum de support gratuit.

Voir Aussi