Diviser des documents Word en plusieurs fichiers en Python

Dans certains cas, vous devez diviser les gros documents Word en les décomposant en plus petits. Vous pouvez diviser un document Word par pages, sections ou colonnes. Dans cet article, vous apprendrez à diviser un document Word en plusieurs fichiers à l’aide de Python. Le guide étape par étape et les exemples de code montreront comment diviser un document Word par sections, pages ou plages de pages par programmation.

Bibliothèque Python pour fractionner des documents MS Word

Pour diviser un document DOCX ou DOC en plusieurs fichiers, nous utiliserons Aspose.Words for Python. C’est une bibliothèque de traitement de texte pour créer et manipuler des documents Word. Vous pouvez l’installer dans vos applications Python à partir de PyPI à l’aide de la commande pip suivante.

pip install aspose-words 

Diviser un document Word par sections en Python

Dans la plupart des cas, le document Word est divisé en plusieurs sections à l’aide de sauts de section. Pour enregistrer chaque section dans un fichier séparé, vous pouvez diviser le document par sections. Les étapes suivantes montrent comment diviser un document Word par sections en Python.

  • Chargez le document Word à l’aide de la classe Document.
  • Boucle pensée chaque section dans la collection Document.sections.
  • Pour chaque section de la collection, procédez comme suit :
    • Créez un nouvel objet de la classe Document.
    • Effacez les sections par défaut à l’aide de la méthode Document.sections.clear().
    • Importez la section dans un nouveau document à l’aide de la méthode Document.importnode(Section, True).assection() et récupérez la Section renvoyée dans un objet.
    • Ajoutez la section renvoyée à la collection de sections du nouveau document.
    • Enregistrez le nouveau document en tant que fichier DOCX à l’aide de la méthode Document.save(string).

L’exemple de code suivant montre comment diviser un document Word en sections en Python.

import aspose.words as aw

# load Word document
doc = aw.Document("document.docx")

for i in range(0, doc.sections.count) :
            
    # clone the section to split
    section = doc.sections[i].clone()

    # create an instance of Document class for new doucment
    newDoc = aw.Document()
    
    # clear the default sections
    newDoc.sections.clear()

    # inster section into new document
    newSection = newDoc.import_node(section, True).as_section()
    newDoc.sections.add(newSection)

    # Save section as a separate document
    newDoc.save(f"split_by_sections_{i}.docx")

Fractionner un document Word par pages en Python

Voyons maintenant comment diviser chaque page du document et l’enregistrer en tant que fichier DOCX séparé. Voici les étapes pour diviser un document Word par pages.

  • Chargez le document Word à l’aide de la classe Document.

  • Obtenez le nombre de pages dans le document à l’aide de la propriété Document.pagecount.

  • Parcourez le nombre de pages et à chaque itération, effectuez les étapes suivantes :

    • Extrayez la page dans un objet à l’aide de la méthode Document.extractpages(pageIndex, 1).

    • Enregistrez la page extraite en tant que fichier DOCX à l’aide de la méthode Document.save(string).

L’exemple de code suivant montre comment diviser un document Word par pages.

import aspose.words as aw

# load Word document
doc = aw.Document("document.docx")

# get page count
pageCount = doc.page_count

# loop through pages
for page in range(0, pageCount):
  
    # save each page as a separate document
    extractedPage = doc.extract_pages(page, 1)
    extractedPage.save(f"split_by_page_{page + 1}.docx")

Diviser un document Word par une plage de pages en Python

Vous pouvez également diviser une plage de pages dans un document Word et l’enregistrer dans un fichier séparé. Voici les étapes pour y parvenir en Python.

  • Chargez le document Word à l’aide de la classe Document.
  • Extrayez les pages à l’aide de la méthode Document.extractpages(int, int) où le premier paramètre est l’index de la page de départ et le second le nombre de pages.
  • Enregistrez la plage de pages extraite en tant que fichier DOCX à l’aide de la méthode Document.save(string).

L’exemple de code suivant montre comment extraire une plage de pages d’un document Word et l’enregistrer en tant que fichier DOCX.

import aspose.words as aw

# load Word document
doc = aw.Document("document.docx")

# extract range of pages
extractedPages = doc.extract_pages(3, 6)

# save pages as a separate document
extractedPages.save("split_by_page_range.docx")

Obtenez une licence API gratuite

Êtes-vous intéressé à essayer gratuitement Aspose.Words for Python ? Obtenez une licence temporaire pour éviter les limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à diviser un document Word en plusieurs documents en Python. Les exemples de code ont montré comment diviser un document Word en sections, pages ou plage de pages. Aspose.Words for Python fournit également un certain nombre de fonctionnalités intéressantes que vous pouvez explorer à l’aide de la documentation. Vous pouvez également poster vos questions sur notre forum.

Voir également