Разделить документы Word на несколько файлов в Python

В некоторых случаях вам нужно разделить большие документы Word, разбив их на более мелкие. Вы можете разделить документ Word на страницы, разделы или столбцы. В этой статье вы узнаете, как разделить документ Word на несколько файлов с помощью Python. Пошаговое руководство и примеры кода продемонстрируют, как программно разделить документ Word на разделы, страницы или диапазоны страниц.

Библиотека Python для разделения документов MS Word

Чтобы разделить документ DOCX или DOC на несколько файлов, мы будем использовать Aspose.Words for Python. Это библиотека обработки текстов для создания документов Word и управления ими. Вы можете установить его в свои приложения Python из PyPI, используя следующую команду pip.

pip install aspose-words 

Разделить документ Word по разделам в Python

В большинстве случаев документ Word делится на несколько разделов с помощью разрывов разделов. Чтобы сохранить каждый раздел в отдельный файл, вы можете разбить документ по разделам. Следующие шаги демонстрируют, как разделить документ Word на разделы в Python.

  • Загрузите документ Word, используя класс Document.
  • Прокрутите каждый раздел в коллекции Document.sections.
  • Для каждого раздела коллекции выполните следующие действия:
    • Создайте новый объект класса Document.
    • Очистите разделы по умолчанию, используя метод Document.sections.clear().
    • Импортируйте раздел в новый документ с помощью метода Document.importnode(Section, True).assection() и получите возвращенный раздел в объекте.
    • Добавьте возвращенный раздел в коллекцию разделов нового документа.
    • Сохраните новый документ как файл DOCX, используя метод Document.save(string).

В следующем примере кода показано, как разделить документ Word на разделы в 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")

Разделение документа Word на страницы в Python

Теперь давайте посмотрим, как разделить каждую страницу документа и сохранить ее как отдельный файл DOCX. Ниже приведены шаги для разделения документа Word на страницы.

  • Загрузите документ Word, используя класс Document.

  • Получите количество страниц в документе, используя свойство Document.pagecount.

  • Прокрутите количество страниц и в каждой итерации выполните следующие шаги:

    • Извлеките страницу в объект с помощью метода Document.extractpages(pageIndex, 1).

    • Сохраните извлеченную страницу как файл DOCX, используя метод Document.save(string).

В следующем примере кода показано, как разделить документ Word на страницы.

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

Разделить документ Word по диапазону страниц в Python

Вы также можете разделить диапазон страниц в документе Word и сохранить его как отдельный файл. Ниже приведены шаги для достижения этого в Python.

  • Загрузите документ Word, используя класс Document.
  • Извлеките страницы с помощью метода Document.extractpages(int, int), где первый параметр — это индекс начальной страницы, а второй — количество страниц.
  • Сохраните извлеченный диапазон страниц в виде файла DOCX, используя метод Document.save(string).

В следующем примере кода показано, как извлечь диапазон страниц из документа Word и сохранить его как файл 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")

Получите бесплатную лицензию API

Хотите бесплатно попробовать Aspose.Words для Python? Получить временную лицензию, чтобы избежать ограничений на пробную версию.

Вывод

В этой статье вы узнали, как разделить документ Word на несколько документов в Python. В примерах кода показано, как разделить документ Word на разделы, страницы или диапазон страниц. Aspose.Words for Python также предоставляет ряд интересных функций, которые вы можете изучить с помощью документации. Также вы можете задавать вопросы на нашем форуме.

Смотрите также