さまざまな場合に、MSWord文書を複数の文書に分割する必要があります。たとえば、Word文書のページ、セクション、またはページのコレクションごとに個別の文書を作成する必要がある場合があります。ドキュメントの分割を自動化するために、この記事では、Javaを使用してプログラムでMSWordDOCXを分割する方法について説明します。次のセクションでは、上記の分割基準のステップバイステップのチュートリアルとコードサンプルを提供します。
- Word文書を分割するJava API
- Javaを使用してWord DOCX/DOCを分割する
- ページ範囲を使用してWord文書を分割する
- Word文書をセクションごとに分割
- 無料のAPIライセンスを取得する
WordDOCXを分割するJavaAPI
Aspose.Words for Javaは、MSWordドキュメントを作成および処理できる強力で機能豊富なドキュメント操作APIです。 APIを使用すると、基本的なWord自動化機能と高度なWord自動化機能に加えて、Word文書を複数の文書に分割することもできます。次の構成を使用して、APIをダウンロードするか、Mavenベースのアプリケーションにインストールすることができます。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>21.1</version>
<classifier>jdk17</classifier>
</dependency>
Wordドキュメントスプリッター-ヘルパークラス
ドキュメントの分割を開始する前に、Aspose.Words for Javaに基づくJavaドキュメントスプリッターを実装する次のヘルパークラスをプロジェクトに追加する必要があります。クラスを追加したら、以下のセクションで提供されるコードサンプルを使用してドキュメントを分割することができます。
Javaを使用してWordDOCXを分割する
まず、MSWord文書をページごとに分割する方法を見てみましょう。この場合、ソースドキュメントの各ページは個別のWordドキュメントに変換されます。以下は、Word文書のページを分割する手順です。
- Documentクラスを使用してWordドキュメントをロードします。
- PageSplitterのオブジェクトを作成し、Documentオブジェクトで初期化します。
- ドキュメント内のページをループします。
- PageSplitter.getDocumentOfPage(Int pageIndex)メソッドを使用して、各ページをDocumentオブジェクトに取得します。
- Document.save(String)メソッドを使用してドキュメントを保存します。
次のコードサンプルは、Javaを使用してWord文書を分割する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-words/Aspose.Words-for-Javaにアクセスしてください。
// Word文書を開く
Document doc = new Document("Word.docx");
// ドキュメント内のノードを別々のページに分割します
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// 各ページを個別のドキュメントとして保存
for (int page = 1; page <= doc.getPageCount(); page++)
{
Document pageDoc = splitter.getDocumentOfPage(page);
pageDoc.save("SplitDocumentByPage_" + page + ".docx");
}
ページ範囲を使用してJavaでWordDOCXを分割する
ソースWord文書から分割するページ範囲を定義することもできます。この操作を実行する手順は次のとおりです。
- Documentクラスを使用してWordドキュメントをロードします。
- PageSplitterのオブジェクトを作成し、Documentオブジェクトで初期化します。
- PageSplitter.getDocumentOfPageRange(Int, Int)メソッドを使用して、ページのコレクションをDocumentオブジェクトに取得します。
- Document.save(String)メソッドを使用してドキュメントを保存します。
次のコードサンプルは、Javaを使用してWord文書をページ範囲で分割する方法を示しています。
// 完全な例とデータファイルについては、https://github.com/aspose-words/Aspose.Words-for-Javaにアクセスしてください。
// Word文書を開く
Document doc = new Document("Word.docx");
// ドキュメント内のノードを別々のページに分割します
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// ドキュメントの一部を取得する
Document pageDoc = splitter.getDocumentOfPageRange(3,6);
pageDoc.save("SplitDocumentByPageRange.docx");
Javaを使用してWord文書をセクションごとに分割する
Aspose.Words for Javaでは、Word文書をセクション区切りで分割することもできます。この操作を実行する手順は次のとおりです。
- Documentクラスを使用してWordドキュメントをロードします。
- Document.getSections()メソッドを使用して、ドキュメントの各セクションをループします。
- Document.getSections().get(index).deepClone()メソッドを使用して、セクションをSectionオブジェクトに複製します。
- Document.getSections().add(Section)メソッドを使用して、新しいドキュメントを作成し、複製されたセクションをドキュメントに追加します。
- Document.save(String)メソッドを使用してドキュメントを保存します。
次のコードサンプルは、Javaを使用してWord文書をセクションごとに分割する方法を示しています。
// WordDOCXドキュメントを読み込む
Document doc = new Document("word.docx");
for (int i = 0; i < doc.getSections().getCount(); i++) {
// ドキュメントを小さな部分に分割します。この場合はセクションごとに分割します
Section section = doc.getSections().get(i).deepClone();
// 新しいドキュメントを作成する
Document newDoc = new Document();
newDoc.getSections().clear();
// セクションを追加
Section newSection = (Section) newDoc.importNode(section, true);
newDoc.getSections().add(newSection);
// 各セクションを個別のドキュメントとして保存
newDoc.save("splitted_" + i + ".docx");
}
無料のAPIライセンスを取得する
評価の制限なしにAPIを試すために、無料の一時ライセンスを取得できます。
結論
この記事では、Javaを使用してMS Word DOCX/DOCを分割する方法を学習しました。ステップバイステップガイドとコードサンプルは、Word文書をセクション、ページ、またはページの範囲で分割する方法を示しています。 ドキュメントを使用して、JavaWordAPIの詳細を調べることができます。