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

Дивись також