PythonでWord文書を複数のファイルに分割

場合によっては、大きなWord文書を小さな文書に分割して分割する必要があります。 Word文書をページ、セクション、または列で分割できます。この記事では、Pythonを使用してWord文書を複数のファイルに分割する方法を学習します。ステップバイステップガイドとコードサンプルは、プログラムでWord文書をセクション、ページ、またはページ範囲で分割する方法を示します。

MSWord文書を分割するPythonライブラリ

DOCXまたはDOCドキュメントを複数のファイルに分割するには、Aspose.Words for Pythonを使用します。これは、Word文書を作成および操作するためのワードプロセッシングライブラリです。次のpipコマンドを使用して、PyPIからPythonアプリケーションにインストールできます。

pip install aspose-words 

PythonでWord文書をセクションごとに分割する

ほとんどの場合、Word文書はセクション区切りを使用して複数のセクションに分割されます。各セクションを個別のファイルに保存するには、ドキュメントをセクションごとに分割します。次の手順は、PythonでWord文書をセクションごとに分割する方法を示しています。

  • Documentクラスを使用してWord文書をロードします。
  • Document.sectionsコレクションの各セクションをループします。
  • コレクションのセクションごとに、次の手順を実行します。
    • Documentクラスの新しいオブジェクトを作成します。
    • Document.sections.clear()メソッドを使用してデフォルトのセクションをクリアします。
    • Document.import_node(Section, True).as_section()メソッドを使用してセクションを新しいドキュメントにインポートし、返されたセクションをオブジェクトで取得します。
    • 返されたセクションを新しいドキュメントのセクションコレクションに追加します。
    • Document.save(string)メソッドを使用して、新しいドキュメントをDOCXファイルとして保存します。

次のコードサンプルは、PythonでWord文書をセクションごとに分割する方法を示しています。

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

PythonでWord文書をページごとに分割する

それでは、ドキュメントの各ページを分割して、個別のDOCXファイルとして保存する方法を見てみましょう。以下は、Word文書をページごとに分割する手順です。

  • Documentクラスを使用してWord文書をロードします。

  • Document.page_countプロパティを使用して、ドキュメントのページ数を取得します。

  • ページ数をループし、各反復で次の手順を実行します。

    • Document.extract_pages(pageIndex, 1)メソッドを使用して、ページをオブジェクトに抽出します。

    • Document.save(string)メソッドを使用して、抽出したページをDOCXファイルとして保存します。

次のコードサンプルは、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")

PythonでWord文書をページ範囲で分割する

Word文書のページの範囲を分割して、別のファイルとして保存することもできます。以下は、Pythonでこれを実現するための手順です。

  • Documentクラスを使用してWord文書をロードします。
  • Document.extract_pages(int, int)メソッドを使用してページを抽出します。ここで、最初のパラメーターは開始ページのインデックスで、2番目のパラメーターはページ数です。
  • Document.save(string)メソッドを使用して、抽出したページ範囲をDOCXファイルとして保存します。

次のコードサンプルは、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 for Pythonを無料で試すことに興味がありますか? 一時ライセンスを取得評価の制限を回避します。

結論

この記事では、PythonでWord文書を複数の文書に分割する方法を学びました。コードサンプルは、Word文書をセクション、ページ、またはページ範囲で分割する方法を示しています。 Aspose.Words for Pythonは、ドキュメントを使用して探索できる多くのエキサイティングな機能も提供します。また、フォーラムに質問を投稿することもできます。

関連項目