Текстові документи є найпоширенішим способом складання контрактів, угод, паперів та багатьох інших офіційних документів. Якщо вам потрібно порівняти та об’єднати два документи Word, подібно до опції відстеження змін Microsoft Word, ми можемо зробити це програмно в наших програмах .NET. У цій статті ми обговоримо, як порівняти два документи Word і виділити виявлені відмінності за допомогою C#. Крім того, ми розглянемо, як порівнювати документи, захищені паролем, приймати та відхиляти зміни та порівнювати більше ніж два документи з прикладами C#.

Порівнюйте документи Word, щоб знайти відмінності за допомогою .NET API

Тут обговорюються такі теми:

.NET API для порівняння документів Word

GroupDocs.Comparison надає .NET API, який дозволяє порівнювати та об’єднувати різні документи кількох форматів у програмі .NET. Я буду використовувати його .NET API, тобто GroupDocs.Comparison for .NET, щоб порівняти документи Word.

Ви можете завантажити DLL або інсталятор MSI із розділу завантажень або встановити API у своїй програмі .NET за допомогою NuGet.

PM> Install-Package GroupDocs.Comparison

Порівняйте документи Word за допомогою C#

Якщо у вас є дві версії документа, ви можете порівняти документи, щоб знайти їх відмінності (додавання, видалення) і створити новий документ, який показує всі зміни. Нижче наведено кроки, щоб порівняти будь-які два документи Word і виділити відмінності.

  • Завантажте перший документ Word за допомогою класу Comparer.
  • Додайте другий файл до Comparer за допомогою методу Add().
  • Порівняйте та отримайте підсумок змін, викликавши метод Compare().

У наведеному нижче коді C# показано, як порівняти документи Word і отримати зміни в отриманому документі.

/*
 * Порівняйте два документи Word і виділіть зміни за допомогою C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Прийняти або відхилити ідентифіковані зміни документів Word за допомогою C#

Подібно до опції відстеження змін у MS Word, ви можете прийняти або відхилити кожну визначену зміну. Нижче наведено кроки для порівняння та прийняття або відхилення визначених змін у документах Word.

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

Наведений нижче вихідний код C# порівнює два документи Word, а потім приймає визначену зміну, а потім відхиляє іншу.

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

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

Порівняйте більше двох документів за допомогою C#

Так само одночасно можна порівняти більше двох документів. Нижче наведено кроки для порівняння кількох документів Word на наявність відмінностей і виділення виявлених змін.

  • Завантажте перший документ Word за допомогою класу Comparer.
  • Продовжуйте додавати інші документи до Comparer за допомогою методу Add().
  • Викличте метод Compare(), щоб отримати зміни та підсумок змін.

Наведений нижче код C# показує, як порівняти більше ніж два документи Word і отримати зміни в отриманому документі.

/*
 * Порівняйте кілька документів Word за допомогою C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

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

Порівняйте захищені паролем документи Word за допомогою C#

Якщо ваші документи захищені паролем, просто введіть їхній пароль під час завантаження документів. Наступні кроки показують, як ми можемо порівняти вміст захищених паролем документів за допомогою C#.

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

У наведеному нижче прикладі коду C# порівнюються два файли Word, захищені паролем, і створюється документ, який підкреслює відмінності.

/*
 * Порівняйте захищені паролем документи Word за допомогою C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Отримайте безкоштовну ліцензію API

Ви можете отримати безкоштовну тимчасову ліцензію, щоб використовувати API без оціночних обмежень.

Висновок

На завершення ми навчилися порівнювати два або більше документів Word за допомогою C#. Далі, після виділення відмінностей, ми навчилися програмно приймати та відхиляти виявлені зміни. Зрештою, ми також обговорили, як можна порівняти захищені паролем документи Word у програмах .NET.

Існує багато інших настроювань для керування результатами порівняння, як-от налаштування чутливості порівняння, показ лише сторінки підсумків, ігнорування прогалин тощо. Дізнайтеся більше про GroupDocs.Comparison for .NET. Відвідайте його документацію, щоб почати створювати власні програми порівняння документів для різних підтримуваних форматів документів. Якщо у вас виникли запитання, зв’яжіться з нами через форум.

Дивись також