Через те, що PDF є одним із найбільш поширених форматів у цифровому світі, часто потрібно порівнювати дві версії одного документа. У цій статті розглядається, як порівняти два PDF-документи та виділити відмінності за допомогою C#. Далі ми побачимо, як порівнювати PDF-файли, захищені паролем, приймати та відхиляти зміни, а також порівнювати більше двох PDF-файлів із прикладами C#.

Тут обговорюються такі теми:
- PDF Comparison .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 з документації. Ви можете створювати власні програми порівняння документів для різних форматів документів. Якщо у вас виникли запитання, зв’яжіться з нами через форум.