Вступ

Незалежно від того, чи працюєте ви з договорами, внутрішніми політиками, технічними специфікаціями чи маркетинговими текстами, патерн однаковий: ви швидко накопичуєте кілька версій .docx і в певний момент потрібно побачити, що саме змінилося між ними. Вбудований у Word діалог Порівняння підходить для випадкової ручної перевірки, але не допомагає, коли порівняння стає частиною регулярного процесу або має бути автоматизоване на сервері.

GroupDocs.Comparison for .NET дозволяє виконувати таке порівняння з коду і отримувати результат у форматі, який вподобають ваші рецензенти. Бібліотека підтримує два режимі виведення порівняння для Word‑документів:

  1. Режим правок — різниці записуються як розмітка Word‑правок (track‑changes). Рецензенти відкривають файл, бачать знайомі елементи Review → Accept / Reject і працюють зі змінами одну за одною.
  2. Режим підсвічування — вставлений, видалений та змінений текст показується кольоровими підсвічуваннями безпосередньо в тілі документа, тож різниці видно одразу під час читання фінального тексту.

У цій статті ми пройдемо обидва підходи з працюючими прикладами C#, розглянемо клас WordCompareOptions та його властивості, а також обговоримо, коли кожен режим має сенс.

Передумови

Перш ніж почати:

  • .NET 6.0 або новіша версія.
  • GroupDocs.Comparison for .NET — встановіть через NuGet:
dotnet add package GroupDocs.Comparison
  • Ліцензійний файл (GroupDocs.Comparison.lic). Без нього бібліотека працює в режимі оцінки з водяним знаком і обмеженням розміру. Ви можете запросити тимчасову ліцензію для тестування.
  • Два Word‑файли для порівняння — будемо називати їх source.docx і target.docx. Приклад вмісту:
source.docx target.docx

Метод 1: Порівняння з правками (Revision‑Track Comparison)

Коли використовувати: рецензентам потрібно приймати або відхиляти кожну зміну окремо в Microsoft Word за допомогою вбудованих інструментів Review → Accept / Reject — наприклад, під час переговорів щодо договору чи затвердження політик.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_revision.docx", options);
}

Отриманий документ у режимі правок (track changes):

Comparison result in revision (track changes) mode

Що відбувається під капотом:

  • ComparisonDisplayMode.Revisions наказує движку генерувати нативну розмітку Word‑правок.
  • DetectStyleChanges = true змушує порівняння враховувати відмінності форматування (жирний, розмір шрифту, колір) разом з текстовими правками.
  • Файл відкривається в Microsoft Word з готовою панеллю Review — кожне вставлення, видалення і зміна стилю перелічені і можуть бути прийняті або відхилені.

Оскільки режим правок не потребує повторного рендерингу вмісту документа — він просто додає метадані правок — він, як правило, швидший за інший режим.


Метод 2: Порівняння в режимі підсвічування (Highlight‑Mode Comparison)

Коли використовувати: зацікавлені сторони хочуть отримати чистий документ, який чітко показує зміни, але їх не цікавить проходження через кожну правку. Типовий сценарій — менеджер, який відкриває останню версію в Word і швидко сканує підсвічені вставки та видалення, щоб зрозуміти вплив оновлення.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight
    };

    comparer.Compare("result_highlighted.docx", options);
}

Отриманий документ у режимі підсвічування:

Comparison result in highlight mode

Що відбувається під капотом:

  • ComparisonDisplayMode.Highlight відображає різниці як вбудовані кольорові підсвічування — червоний для видалень, зелений для вставок, синій для змін стилю (це типові кольори, які можна налаштувати через WordCompareOptions / CompareOptions і їх відповідні StyleSettings).
  • Документ готовий до читання або друку без додаткових кроків.
  • Метадані правок у файл не додаються.

Режим підсвічування виконує більше роботи всередині, оскільки потрібно змінити фактичний вміст документа і застосувати форматування. Для великих файлів ви можете помітити значну різницю у продуктивності порівняно з режимом правок.


Дослідження WordCompareOptions

Обидва приклади вище використовують WordCompareOptions — клас, що успадковує загальні налаштування від CompareOptions і додає властивості, специфічні для Word‑документів. За допомогою цього типу ви керуєте режимом відображення (DisplayMode), чи слід відстежувати зміни стилю (DetectStyleChanges), яким ім’ям автора будуть позначені правки (RevisionAuthorName), як обробляти перенос рядків, закладки тощо.

Крім того, базовий CompareOptions надає стилі для вставлених, видалених і змінених елементів (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), тож ви можете тонко налаштовувати кольори та форматування підсвічувань за потреби.

Нижче невеликий приклад налаштування опцій для перевірки лише тексту в режимі правок:

var options = new WordCompareOptions
{
    DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
    DetectStyleChanges = false,
    RevisionAuthorName = "QA Bot",
    CompareBookmarks = true
};

Отримання змін програмно

Незалежно від того, який режим виведення ви оберете (правки чи підсвічування), ви завжди можете отримати структурований список виявлених різниць за допомогою спільного API Comparer.GetChanges. Цей метод працює і для Word, і для всіх інших підтримуваних форматів.

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    comparer.Compare("result_revision.docx");

    var changes = comparer.GetChanges(); // returns ChangeInfo[]
}

Це корисно, коли потрібно подальша обробка змін у вашому робочому процесі — наприклад, сформувати власний HTML‑звіт, передати різниці у систему ревізій або зібрати статистику за редагуваннями. Дивіться офіційну довідку API для детальнішої інформації: Comparer.GetChanges.


Робота з документами, захищеними паролем

Якщо документи захищені паролем, їх все одно можна порівняти: пароль передається через LoadOptions при створенні Comparer. Такий підхід працює однаково для Word, PDF та інших підтримуваних форматів.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source_protected.docx",
    new LoadOptions { Password = "secret" }))
{
    comparer.Add("target_protected.docx");

    var options = new WordCompareOptions
    {
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_protected.docx", options);
}

Безкоштовна пробна версія

Ви можете завантажити GroupDocs.Comparison for .NET зі сторінки офіційних релізів. Для не обмеженого тестування запитуйте тимчасову ліцензію — кредитна карта не потрібна.


Поширені запитання

Q: Чи потрібен Microsoft Word або Office, встановлений на сервері?
A: Ні. GroupDocs.Comparison — це автономна .NET‑бібліотека; вона сама читає та записує DOCX‑файли.

Q: Чи можу я порівнювати документи в інших форматах, крім Word?
A: Так — бібліотека підтримує PDF, Excel, презентації, прості текстові файли та багато іншого. Повний список у документації.

Q: Що станеться, якщо я не вкажу ліцензію?
A: Бібліотека працюватиме в режимі оцінки. Вихідні документи міститимуть водяний знак, а обробка буде обмежена лише кількома першими сторінками. Тимчасова ліцензія знімає ці обмеження для тестування.

Q: Чи можна налаштувати кольори підсвічування?
A: Типові кольори підходять для більшості випадків. Для розширеного контролю стилю використовуйте властивість StyleSettings у CompareOptions.


Висновок

GroupDocs.Comparison for .NET пропонує два зручних способи порівняння Word‑документів із коду. Режим правок підходить до існуючого процесу перегляду вашої команди; режим підсвічування дає миттєвий візуальний підсумок для тих, кому потрібен лише огляд змін. Клас WordCompareOptions дозволяє тонко налаштувати вихід — від виявлення стилю та авторства до порівняння закладок і властивостей документа.

Оберіть режим, що відповідає вашому сценарію, або створіть обидва і дайте аудиторії вибрати бажаний вигляд.

Додаткові ресурси