パスワードで保護されている場合でも、2 つの Word ドキュメントの比較については既に説明しました。比較するファイルが 3 つ以上ある場合はどうなりますか?この記事では、Java で複数の Word ドキュメントを比較する方法について説明します。さらに、特定された各変更を受け入れまたは拒否して、目的の出力を得る方法を学習します。

複数の Word 文書を比較して Java の違いを見つける

最近の一連の短い記事では、Java による次の方法について既に説明しました。

この記事の終わりまでに、次の方法についても十分に理解できるようになります。

開発環境がまだ比較を実行する準備ができていない場合は、すぐに準備しましょう。

2 つ以上の Word 文書を比較するための Java ライブラリ – セットアップ

ドキュメント比較 Java API については、もうおわかりいただけたと思います。同じ GroupDocs.Comparison を使用して先に進みます。次の構成を使用して、maven ベースのアプリケーションの開発環境をダウンロードまたはすばやく確認できます。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>22.3</version> 
</dependency>

それでは、目的にジャンプして、複数の Word ファイルを比較することから始めましょう。

Java で 3 つ以上の Word ファイルを比較する

複数のファイルを比較することは、2 つのファイルのみを比較することと大差ありません。比較ツールにさらにファイルを追加し続け、最後に、2 つのファイルを比較するときと同じように比較をクリックします。以下は、Java で 3 つ以上の Word ドキュメントを比較して変更を識別し、見つかった相違点を強調する手順です。

  • Comparer クラスを使用して、最初の DOC/DOCX ファイルを読み込みます。
  • add() メソッドを使用して、2 番目のファイルを Comparer に追加します。
  • 同じ/類似の add() メソッドを使用して、さらにドキュメントを Comparer に追加し続けます。
  • compare メソッドを呼び出して比較を実行し、識別された変更の概要を取得します。

次の例は、Java で複数の Word ファイルを比較し、結果のドキュメントで変更を取得する方法を示しています。

/*
 * 複数の Word 文書を比較する
 */
try (Comparer comparer = new Comparer("path/document-1.docx")) {
    comparer.add("path/document-2.docx");
    comparer.add("path/document-3.docx");
    final Path resultPath = comparer.compare("path/compared-result.docx");
}

Java を使用して Word ファイル内で識別された変更を承認または拒否する

Microsoft Word の変更履歴機能に精通していることを確認してください。これと同様に、最終的な出力ドキュメントの識別された各変更をプログラムで承認または拒否できます。次の手順は、Word 文書の DOC/DOCX ファイル内で識別された変更を比較して、承認または拒否する方法を示しています。

  • Comparer クラスを使用してソース DOC/DOCX ドキュメントを読み込みます。
  • add() メソッドを使用して、2 番目の Word ドキュメントを Comparer に追加します。
  • compare() メソッドを使用して、ロードされたファイルを比較します。
  • getChanges() メソッドを使用して、特定された相違点のコレクションを取得します。
  • 変更をトラバースして分析すると、それに応じて各変更の ComparisonAction を設定できます。
    • 変更に同意するには、Accept に設定します。
    • 変更を拒否するには、Reject として設定します。
  • applyChanges() メソッドを呼び出して、変更が反映された変更済みドキュメントを取得します。

次の Java コード スニペットは、2 つの DOCX ドキュメントを比較し、特定された変更を受け入れて拒否する方法を示しています。

/*
 * Word 文書の比較 - Java での変更の承認または拒否
 */
try (Comparer comparer = new Comparer("path/document-1.docx")) {
    comparer.add("path/document-2.docx");
    
    final Path resultPath = comparer.compare("path/compared-result.docx");
    ChangeInfo[] changes = comparer.getChanges();

    changes[0].setComparisonAction(ComparisonAction.REJECT);
    changes[1].setComparisonAction(ComparisonAction.ACCEPT);
    comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

無料の API ライセンスを取得する

無料の一時ライセンスを取得して、評価制限なしで API を使用し、複数の Word ドキュメントを比較できます。

独自の比較アプリケーションを構築する

独自のドキュメント比較アプリケーションを構築する際に役立つ重要なリンクをいくつか紹介します。

特徴 | Documentation | API Reference | Running Examples – Source Code | Support | Release Notes

関連項目