Dividir documentos de Word en varios archivos en Python

En ciertos casos, debe dividir los documentos grandes de Word dividiéndolos en otros más pequeños. Puede dividir un documento de Word por páginas, secciones o columnas. En este artículo, aprenderá cómo dividir un documento de Word en varios archivos usando Python. La guía paso a paso y los ejemplos de código demostrarán cómo dividir un documento de Word por secciones, páginas o rangos de páginas mediante programación.

Biblioteca de Python para dividir documentos de MS Word

Para dividir un documento DOCX o DOC en varios archivos, usaremos Aspose.Words for Python. Es una biblioteca de procesamiento de textos para crear y manipular documentos de Word. Puede instalarlo en sus aplicaciones Python desde PyPI usando el siguiente comando pip.

pip install aspose-words 

Dividir un documento de Word por secciones en Python

En la mayoría de los casos, el documento de Word se divide en varias secciones mediante saltos de sección. Para guardar cada sección en un archivo separado, puede dividir el documento por secciones. Los siguientes pasos demuestran cómo dividir un documento de Word por secciones en Python.

  • Cargue el documento de Word usando la clase Document.
  • Recorra cada sección en la colección Document.sections.
  • Para cada sección de la colección, realice los siguientes pasos:
    • Cree un nuevo objeto de la clase Document.
    • Borre las secciones predeterminadas utilizando el método Document.sections.clear().
    • Importe la sección en un nuevo documento usando el método Document.import\node(Section, True).as\section() y obtenga la Sección devuelta en un objeto.
    • Agregue la sección devuelta a la colección de secciones del nuevo documento.
    • Guarde el nuevo documento como un archivo DOCX utilizando el método Document.save(string).

El siguiente ejemplo de código muestra cómo dividir un documento de Word por secciones 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")

Dividir un documento de Word por páginas en Python

Ahora, echemos un vistazo a cómo dividir cada página del documento y guardarlo como un archivo DOCX separado. Los siguientes son los pasos para dividir un documento de Word por páginas.

  • Cargue el documento de Word usando la clase Document.

  • Obtenga el recuento de páginas en el documento mediante la propiedad Document.page\count.

  • Recorra el recuento de páginas y, en cada iteración, realice los siguientes pasos:

    • Extrae la página en un objeto usando el método Document.extract\pages(pageIndex, 1).

    • Guarde la página extraída como un archivo DOCX utilizando el método Document.save(string).

El siguiente ejemplo de código muestra cómo dividir un documento de Word por páginas.

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")

Dividir un documento de Word por un rango de páginas en Python

También puede dividir un rango de páginas en un documento de Word y guardarlo como un archivo separado. Los siguientes son los pasos para lograr esto en Python.

  • Cargue el documento de Word usando la clase Document.
  • Extraiga las páginas usando el método Document.extract\pages(int, int) donde el primer parámetro es el índice de la página de inicio y el segundo es el número de páginas.
  • Guarde el rango de páginas extraído como un archivo DOCX utilizando el método Document.save(string).

El siguiente ejemplo de código muestra cómo extraer un rango de páginas de un documento de Word y guardarlo como un archivo 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")

Obtenga una licencia de API gratuita

¿Está interesado en probar Aspose.Words for Python de forma gratuita? Obtenga una licencia temporal para evitar limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a dividir un documento de Word en varios documentos en Python. Los ejemplos de código han demostrado cómo dividir un documento de Word por secciones, páginas o un rango de páginas. Aspose.Words for Python también proporciona una serie de características interesantes que puede explorar utilizando la documentación. Además, puede publicar sus preguntas en nuestro foro.

Ver también