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

Здесь обсуждаются следующие темы:
- Сравнение PDF .NET API
- Сравнить два PDF-документа
- Принять или отклонить выявленные изменения в документах PDF
- Сравнить более двух PDF-документов
- Сравнить защищенные паролем PDF-файлы
.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 for .NET из документации. Вы можете создавать свои собственные приложения для сравнения документов для различных форматов документов. По вопросам обращайтесь к нам через форум.