GroupDocs.Comparison for .NETは、ドキュメントを比較して違いを見つけることができるC#ライブラリです。 Microsoft Word、Excel、PowerPoint、OpenDocument、PDF、Text、HTML、および他の多くのドキュメントを比較およびマージし、ソースドキュメントとターゲットドキュメント間の変更のリストを取得し、変更を適用または拒否し、GroupDocsで結果を保存します.ComparisonAPI。これに加えて、GroupDocs.Comparisonは、太字、斜体、下線、取り消し線、フォントタイプなど、スタイルと書式の変更を識別できます。

GroupDocs.Comparisonで使用される変更検出アルゴリズムを使用すると、さまざまなドキュメントパーツおよびブロックの違いを検出できます。

  • テキストブロック-段落、単語、文字。
  • テーブル;
  • 画像;
  • 形状など。

2つのテキストファイルを比較して違いを示す簡単な手順は次のとおりです。

  • Comparerオブジェクトをソースドキュメントパスまたはストリームでインスタンス化します。
  • Addメソッドを呼び出し、ターゲットドキュメントのパスまたはストリームを指定します。
  • Compareメソッドを呼び出します。

次のコードスニペットは、数行のコードを使用したドキュメント比較の最も単純なケースを示しています。

ローカルファイルのドキュメントを比較する

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
}

ストリームからのドキュメントを比較する

using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
    comparer.Add(File.OpenRead(“target.docx”));
    comparer.Compare(File.Create(“result.docx”));
}

異なる年に締結されたDOCX形式の2つの契約があるとします。上記のコードを使用してこれらのコントラクトを比較すると、以下に示すように、削除された要素が赤でマークされ、追加された要素が青でマークされ、変更された要素が緑でマークされたDOCXファイルが得られます。

検出された差異を受け入れるか拒否する

GroupDocs.Comparisonは、ソースドキュメントとターゲットドキュメントの間で特定の変更を適用または破棄し、選択した変更の有無にかかわらず、結果のドキュメントを保存する機能を提供します。

結果のドキュメントに変更を適用/拒否する手順は次のとおりです。

  • Comparerオブジェクトをソースドキュメントパスまたはストリームでインスタンス化します。
  • _ A _ ddメソッドを呼び出し、パスターゲットドキュメントのパスまたはストリームを指定します。
  • Compareメソッドを呼び出します。
  • GetChangesメソッドを呼び出して、検出された変更リストを取得します。
  • 必要な変更オブジェクトのComparisonActionComparisonAction.AcceptまたはComparisonAction.Rejectの値に設定します。
  • ApplyChangesメソッドを呼び出し、変更のコレクションをそれに渡します。

次のコードサンプルは、検出された差異を受け入れる/拒否する方法を示しています。

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes });
}

ドキュメントページのプレビューを生成する

GroupDocs.Comparisonでは、DocumentクラスのGeneratePreviewメソッドを使用して、ソース、ターゲット、および結果のドキュメントのページプレビューを生成できます。

PreviewOptionsクラスは、プレビュー生成プロセスを管理するために使用されます-目的のページ番号、画像形式などを指定します。

GroupDocs.ComparisonAPIを使用してドキュメントプレビューを生成する手順は次のとおりです。

  • Comparerクラスの新しいインスタンスを作成し、ソースドキュメントパスをコンストラクターパラメーターとして渡します。
  • Addメソッドを使用して、比較対象のドキュメントを追加します。
  • ComparerオブジェクトのSourceおよびTargetsプロパティにより、ソースおよびターゲットドキュメントにアクセスでき、GeneratePreviewメソッドが提供されます。
  • PreviewOptionsオブジェクトを次のコマンドでインスタンス化します。
    • 各ページストリームの作成を委任します(イベントハンドラーCreatePageStreamを参照) 。
    • 画像プレビュー形式-PNG/JPG / BMP;
    • 処理するページ番号。
    • プレビュー画像のカスタムサイズ(必要な場合) 。
  • SourceおよびTargetsドキュメントのGeneratePreviewメソッドを呼び出し、PreviewOptionsを渡します。

結果のドキュメントのページプレビューを取得する

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
    Document document = new Document(File.OpenRead(“result.docx”));
    PreviewOptions previewOptions = new PreviewOptions(pageNumber =>
    {
        var pagePath = Path.Combine(“C:\\”, $"result\_{pageNumber}.png");
        return File.Create(pagePath);
    });
    previewOptions.PreviewFormat = PreviewFormats.PNG;
    previewOptions.PageNumbers = new int[] { 1, 2 };
    document.GeneratePreview(previewOptions);
}

複数のドキュメントを比較する

GroupDocs.Comparisonを使用すると、3つ以上のドキュメントを比較できます。次のコードサンプルは、複数のドキュメントをプログラムで比較する方法を示しています。

using (Comparer comparer = new Comparer(“source.docx”)
{
    comparer.Add(“target1.docx”);
    comparer.Add(“target2.docx”);
    comparer.Add(“target3.docx”);
    comparer.Compare(“result.docx”);
}

インストール

NuGetは、GroupDocs.Comparisonfor.NETをダウンロードしてインストールする最も簡単な方法です。機能制限なしでライブラリをテストするには、一時ライセンスを取得してください。

ライブラリの詳細については、ドキュメントを確認してください。無料のテクニカルサポートも提供していますので、お気軽にお問い合わせ-喜んでお手伝いさせていただきます。