В связи с тем, что PDF является одним из наиболее часто используемых форматов в цифровом мире, часто требуется сравнить две версии одного и того же документа. В этой статье обсуждается, как сравнить два документа PDF и выделить различия с помощью C#. Далее мы увидим, как сравнивать защищенные паролем PDF-файлы, принимать и отклонять изменения, а также сравнивать более двух PDF-файлов на примерах C#.

Сравните PDF-документы, чтобы найти различия с помощью .NET API

Здесь обсуждаются следующие темы:

.NET API для сравнения PDF-файлов

GroupDocs.Comparison for .NET — это API, который позволяет сравнивать несколько документов PDF и многие другие файлы одного и того же формата документов в приложениях .NET. Я буду использовать этот API в примерах кода C# этой статьи для сравнения PDF-документов.

Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API в своем приложении .NET через NuGet.

PM> Install-Package GroupDocs.Comparison

Сравните PDF-документы с помощью C#

Если у вас есть несколько копий PDF-документа, вы можете сравнить эти файлы, чтобы найти различия (добавления, удаления). После сравнения содержимого PDF можно создать новый документ, в котором будут отмечены все выявленные изменения. Ниже приведены шаги для сравнения двух документов PDF и выделения различий с помощью C#.

  • Загрузите первый PDF-документ, используя класс Comparer.
  • Добавьте второй файл в Comparer с помощью метода Add().
  • Сравните оба файла PDF и получите сводку изменений, вызвав метод Compare().

В следующем фрагменте кода C# показано, как сравнивать документы PDF и выделять изменения в результирующем документе.

/*
 * Сравните два документа PDF и выделите изменения с помощью C#
 */
using (Comparer comparer = new Comparer(@"path/document-ver1.pdf"))
{
    comparer.Add(@"path/document-ver2.pdf");
    comparer.Compare(@"path/compared-result.pdf");
}

Принять или отклонить выявленные изменения файлов PDF с помощью C#

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

  • Загрузите исходный и целевой PDF-файлы, используя класс Comparer.
  • Сравнение загруженных документов методом Compare().
  • Получить выявленные изменения с помощью метода GetChanges().
  • Теперь просмотрите изменения и установите ComparisonAction.
    • Выберите Принять или Отклонить для каждого изменения.
  • Вызовите метод ApplyChanges(), чтобы получить результирующий документ с принятыми изменениями.

Следующий фрагмент кода сравнивает два документа PDF, затем принимает идентифицированное изменение, а затем отклоняет другое с помощью C#.

/*
 * Принять и отклонить выявленные изменения путем сравнения документов PDF с помощью C#.
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Отклонение первого идентифицированного изменения, и оно не будет добавлено в результирующий документ
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(@"path/rejected-change-result.pdf", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges(@"path/accepted-change-result.pdf", new ApplyChangeOptions { Changes = changes });
}

Сравните более двух файлов PDF с помощью C#

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

  • Загрузите первые файлы PDF, используя класс Comparer.
  • Добавьте другие документы в Comparer, используя метод Add().
  • Сравните все файлы PDF с помощью метода Compare() и получите изменения и сводку изменений.

В следующем примере показано, как сравнить несколько PDF-файлов на C# и получить изменения в результирующем документе.

/*
 * Сравните несколько документов PDF с помощью C#
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    comparer.Add(@"path/document-3.pdf");
    comparer.Add(@"path/document-4.pdf");

    comparer.Compare(@"path/compare-result.pdf");
}

Сравните PDF-документы, защищенные паролем, с помощью C#

Вы можете сравнить защищенные паролем файлы, просто указав их пароли при загрузке этих документов. Следующие шаги показывают, как мы можем сравнить PDF-содержимое защищенных паролем документов с помощью C#.

  • Подготовьте параметры загрузки для исходных и целевых документов, указав пароль.
  • Загрузите исходный документ с помощью класса Comparer.
  • Добавьте целевой документ в Comparer, используя подготовленные параметры загрузки.
  • Получите сводку различий, вызвав метод Compare().

В следующем примере сравниваются два PDF-файла, защищенных паролем, и выделяются выявленные различия в отдельном документе с использованием C#.

/*
 * Сравните PDF-документы, защищенные паролем, с помощью C#
 */
using (Comparer comparer = new Comparer(@"path/protected-document-1.pdf", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add(@"path/protected-document-2.pdf", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare(@"path/compared-protected-docs-result.pdf");
}

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

Вы можете получить бесплатную временную лицензию для использования API без ограничений пробной версии.

Вывод

В заключение мы узнали, как сравнивать два или более PDF-файла с помощью C#. Далее выделяем отличия и программно принимаем или отклоняем выявленные изменения. Наконец, мы увидели, как сравнивать защищенные паролем PDF-документы в приложениях .NET.

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

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