Wprowadzenie

Niezależnie od tego, czy pracujesz z kontraktami, wewnętrznymi politykami, specyfikacjami technicznymi czy materiałami marketingowymi, schemat jest taki sam: szybko gromadzisz kilka wersji .docx i w pewnym momencie musisz zobaczyć, co dokładnie zmieniło się pomiędzy nimi. Wbudowany w Word dialog Compare jest wystarczający przy okazjonalnym ręcznym sprawdzeniu, ale nie pomaga, gdy porównywanie staje się częścią regularnego procesu lub musi być zautomatyzowane po stronie serwera.

GroupDocs.Comparison for .NET pozwala uruchomić to porównanie z kodu i uzyskać wynik w formacie preferowanym przez recenzentów. Biblioteka obsługuje dwa tryby wyjściowe dla dokumentów Word:

  1. Tryb rewizji — różnice są zapisywane jako znacznik wersji Word (śledzenie zmian). Recenzenci otwierają plik, widzą znajome kontrolki Review → Accept / Reject i przeglądają zmiany po jednej.
  2. Tryb podświetlenia — wstawiony, usunięty i zmodyfikowany tekst jest renderowany z podświetleniami kolorystycznymi bezpośrednio w treści dokumentu, więc różnice są widoczne od razu podczas czytania ostatecznego tekstu.

W tym artykule przejdziemy przez oba podejścia z działającymi przykładami C#, przyjrzymy się klasie WordCompareOptions i jej właściwościom oraz omówimy, kiedy każdy tryb ma większy sens.

Wymagania wstępne

Przed rozpoczęciem:

  • .NET 6.0 lub nowszy.
  • GroupDocs.Comparison for .NET — instalacja przez NuGet:
dotnet add package GroupDocs.Comparison
  • Plik licencji (GroupDocs.Comparison.lic). Bez niego biblioteka działa w trybie ewaluacyjnym z znakami wodnymi i ograniczeniami rozmiaru. Możesz poprosić o tymczasową licencję do testów.
  • Dwa pliki Word do porównania — nazwijmy je source.docx i target.docx. Przykładowa zawartość:
source.docx target.docx

Metoda 1: Porównanie ze Śledzeniem Rewizji

Kiedy używać: recenzenci muszą akceptować lub odrzucać każdą zmianę indywidualnie w Microsoft Word, korzystając z wbudowanych narzędzi Review → Accept / Reject — na przykład podczas negocjacji kontraktu lub cykli zatwierdzania polityk.

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);
}

Wynikowy dokument w trybie rewizji (śledzenie zmian):

Comparison result in revision (track changes) mode

Co się dzieje pod maską:

  • ComparisonDisplayMode.Revisions instruuje silnik, aby wyemitował natywne znaczniki śledzenia zmian Worda.
  • DetectStyleChanges = true powoduje, że porównanie wykrywa różnice formatowania (pogrubienie, rozmiar czcionki, kolor) oprócz zmian tekstowych.
  • Plik wyjściowy otwiera się w Microsoft Word z gotowym panelem Review — każda wstawka, usunięcie i zmiana stylu jest wylistowana i może być zaakceptowana lub odrzucona.

Ponieważ tryb rewizji nie wymaga ponownego renderowania treści dokumentu — jedynie dołącza metadane rewizji — zazwyczaj jest szybszy od drugiego trybu.


Metoda 2: Porównanie w Trybie Podświetlenia

Kiedy używać: interesariusze chcą czystego dokumentu, który wyraźnie pokazuje, co się zmieniło, ale nie są zainteresowani przeglądaniem każdej poszczególnej rewizji. Typowy scenariusz to menedżer, który otwiera najnowszą wersję w Wordzie i szybko skanuje podświetlone wstawki i usunięcia, aby zrozumieć wpływ aktualizacji.

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);
}

Wynikowy dokument w trybie podświetlenia:

Comparison result in highlight mode

Co się dzieje pod maską:

  • ComparisonDisplayMode.Highlight renderuje różnice jako podświetlenia w linii — czerwony dla usunięć, zielony dla wstawek, niebieski dla zmian stylu (domyślne kolory, które można dostosować poprzez WordCompareOptions / CompareOptions oraz ich powiązane StyleSettings).
  • Dokument jest gotowy do czytania lub drukowania bez dodatkowych kroków.
  • Do pliku nie są dodawane metadane śledzenia zmian.

Tryb podświetlenia wymaga więcej pracy wewnętrznej, ponieważ musi modyfikować rzeczywistą treść dokumentu i stosować formatowanie. W przypadku dużych plików możesz zauważyć znaczącą różnicę wydajności w porównaniu z trybem rewizji.


Eksploracja WordCompareOptions

Oba powyższe przykłady korzystają z WordCompareOptions — klasy, która dziedziczy wspólne ustawienia z CompareOptions i dodaje właściwości specyficzne dla dokumentów Word. Za jej pomocą kontrolujesz tryb wyświetlania (DisplayMode), czy śledzić zmiany stylu (DetectStyleChanges), jaką nazwę autora wyświetla się przy rewizjach (RevisionAuthorName), a także porównywanie znaków końca linii, zakładek itp.

Na dodatek bazowa klasa CompareOptions udostępnia style dla elementów wstawionych, usuniętych i zmienionych (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), dzięki czemu możesz precyzyjnie dostroić kolory i formatowanie podświetleń w razie potrzeby.

Oto mały przykład konfiguracji opcji dla sprawdzenia wyłącznie tekstu w trybie rewizji:

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

Pobieranie Zmian Programowo

Bez względu na wybrany tryb wyjściowy (rewizje lub podświetlenie) zawsze możesz uzyskać ustrukturyzowaną listę wykrytych różnic za pomocą wspólnego API Comparer.GetChanges. Metoda działa dla Worda i wszystkich innych obsługiwanych formatów.

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

    comparer.Compare("result_revision.docx");

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

Jest to przydatne, gdy trzeba dalszej przetwarzać zmiany w własnym przepływie pracy — na przykład, aby wygenerować własny raport HTML, wprowadzić różnice do systemu recenzji lub zagregować statystyki edycji. Zobacz oficjalną dokumentację API po więcej szczegółów: Comparer.GetChanges.


Praca z Dokumentami Zabezpieczonymi Hasłem

Jeśli dokumenty są chronione hasłem, wciąż można je porównać: hasło przekazuje się poprzez LoadOptions przy tworzeniu obiektu Comparer. To samo podejście działa dla Worda, PDF‑ów i innych obsługiwanych formatów.

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);
}

Uzyskaj bezpłatną wersję próbną

Możesz pobrać GroupDocs.Comparison for .NET ze strony z oficjalnymi wydaniami. Do nieograniczonego testowania poproś o tymczasową licencję — karta kredytowa nie jest wymagana.


Najczęściej Zadawane Pytania

Q: Czy potrzebuję zainstalowanego Microsoft Word lub Office na serwerze?
A: Nie. GroupDocs.Comparison jest samodzielną biblioteką .NET; odczytuje i zapisuje pliki DOCX samodzielnie.

Q: Czy mogę porównywać dokumenty w innych formatach niż Word?
A: Tak — biblioteka obsługuje PDF‑y, arkusze Excel, prezentacje, pliki tekstowe i wiele innych. Pełną listę znajdziesz w dokumentacji.

Q: Co się stanie, jeśli nie ustawiam licencji?
A: Biblioteka działa w trybie ewaluacyjnym. Dokumenty wyjściowe będą zawierały znak wodny i przetwarzane będą tylko pierwsze kilka stron. Tymczasowa licencja usuwa te ograniczenia na potrzeby testów.

Q: Czy mogę dostosować kolory podświetleń?
A: Domyślne kolory działają w większości przypadków. Do zaawansowanej kontroli stylu użyj właściwości StyleSettings w CompareOptions.


Podsumowanie

GroupDocs.Comparison for .NET oferuje dwa przejrzyste sposoby porównywania dokumentów Word z poziomu kodu. Tryb rewizji wpasowuje się bezpośrednio w istniejący proces recenzji zespołu; tryb podświetlenia dostarcza natychmiastowego podsumowania wizualnego dla osób, które potrzebują jedynie zobaczyć zmiany. Klasa WordCompareOptions pozwala precyzyjnie dostroić wyjście — od wykrywania stylu i atrybucji autora po porównywanie zakładek i właściwości dokumentu.

Wybierz tryb odpowiadający Twojemu scenariuszowi lub wygeneruj oba i pozwól każdej grupie odbiorców wybrać preferowany widok.

Dodatkowe zasoby