Úvod

Ať už pracujete se smlouvami, interními směrnicemi, technickými specifikacemi nebo marketingovými texty, vzorec je stejný: rychle se vám nashromáždí několik verzí .docx a v určitém okamžiku potřebujete zjistit, co se mezi nimi přesně změnilo. Vestavěný dialog Compare ve Wordu stačí pro občasnou ruční kontrolu, ale příliš nepomůže, když se porovnávání stane součástí pravidelného procesu nebo je třeba jej automatizovat na serveru.

GroupDocs.Comparison pro .NET vám umožní spustit takové porovnání z kódu a vytvořit výsledek ve formátu, který vaši recenzenti preferují. Knihovna podporuje dva režimy výstupního porovnání pro Word dokumenty:

  1. Režim revizí — rozdíly jsou zaznamenány jako značení revizí (sledování změn) ve Wordu. Recenzenti otevřou soubor, uvidí známé ovládací prvky Review → Accept / Reject a projdou změny po jedné.
  2. Režim zvýraznění — vložený, smazaný a upravený text je vykreslen barevným zvýrazněním přímo v těle dokumentu, takže rozdíly jsou na první pohled viditelné při čtení finálního textu.

V tomto článku projdeme oba přístupy s funkčními příklady v C#, prozkoumáme třídu WordCompareOptions a její vlastnosti a prodiskutujeme, kdy má který režim větší smysl.

Předpoklady

Před zahájením:

  • .NET 6.0 nebo novější.
  • GroupDocs.Comparison pro .NET — nainstalujte přes NuGet:
dotnet add package GroupDocs.Comparison
  • Licenční soubor (GroupDocs.Comparison.lic). Bez něj knihovna běží v evaluačním režimu s vodoznaky a omezením velikosti. Můžete požádat o dočasnou licenci pro testování.
  • Dva Word soubory k porovnání — budeme je označovat jako source.docx a target.docx. Příklad obsahu:
source.docx target.docx

Metoda 1: Porovnání s režimem revizí

Kdy použít: recenzenti potřebují v Microsoft Wordu přijímat nebo odmítat jednotlivé změny pomocí vestavěných nástrojů Review → Accept / Reject — například během vyjednávání smluv nebo schvalovacích cyklů směrnic.

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

Výsledný dokument v režimu revizí (sledování změn):

Výsledek porovnání v režimu revizí (sledování změn)

Co se děje pod kapotou:

  • ComparisonDisplayMode.Revisions říká motoru, aby vytvořil nativní značení Wordu pro sledování změn.
  • DetectStyleChanges = true způsobí, že se při porovnání zachytí i rozdíly ve formátování (tučné písmo, velikost fontu, barva) vedle textových úprav.
  • Výstupní soubor se otevře v Microsoft Wordu s připraveným panelem Review — každé vložení, smazání a úprava stylu je vylistována a může být přijata nebo odmítnuta.

Protože režim revizí nevyžaduje pře­renderování obsahu dokumentu — jen připojí metadata revize — bývá obvykle rychlejší než druhý režim.


Metoda 2: Porovnání v režimu zvýraznění

Kdy použít: zúčastněné strany chtějí čistý dokument, který jasně ukazuje, co se změnilo, ale nechtějí pracovat s každou jednotlivou revizí. Typický scénář je manažer, který otevře nejnovější verzi ve Wordu a rychle projde zvýrazněné vložení a smazání, aby pochopil dopad aktualizace.

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

Výsledný dokument v režimu zvýraznění:

Výsledek porovnání v režimu zvýraznění

Co se děje pod kapotou:

  • ComparisonDisplayMode.Highlight vykresluje rozdíly jako vestavěná barevná zvýraznění — červená pro smazání, zelená pro vložení, modrá pro změny stylu (výchozí barvy lze upravit pomocí WordCompareOptions / CompareOptions a jejich souvisejících StyleSettings).
  • Dokument je připravený ke čtení nebo tisku bez dalších kroků.
  • Do souboru nejsou přidána metadata sledování změn.

Režim zvýraznění provádí více práce interně, protože musí modifikovat skutečný obsah dokumentu a aplikovat formátování. U velkých souborů můžete zaznamenat výrazný rozdíl ve výkonu oproti režimu revizí.


Prozkoumání WordCompareOptions

Oba výše uvedené příklady používají WordCompareOptions — třídu, která dědí společná nastavení z CompareOptions a přidává vlastnosti specifické pro Word dokumenty. Touto třídou řídíte režim zobrazení (DisplayMode), zda sledovat změny stylu (DetectStyleChanges), jaké jméno autora se zobrazí u revizí (RevisionAuthorName) a další nastavení jako zalamování řádků, záložky apod.

Kromě toho základní CompareOptions vystavuje styly pro vložené, smazané a změněné položky (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), takže můžete doladit barvy a formátování zvýraznění podle potřeby.

Zde je malý příklad konfigurace možností pro kontrolu jen textu v režimu revizí:

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

Získání změn programově

Bez ohledu na to, který výstupní režim zvolíte (revize nebo zvýraznění), můžete vždy získat strukturovaný seznam detekovaných rozdílů pomocí společného API Comparer.GetChanges. Tato metoda funguje pro Word i pro všechny ostatní podporované formáty.

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

    comparer.Compare("result_revision.docx");

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

To je užitečné, když potřebujete provést následné zpracování změn ve vlastním pracovním postupu — například vytvořit vlastní HTML zprávu, předat rozdíly do systému recenzí nebo agregovat statistiky o úpravách. Podívejte se na oficiální referenci API pro více informací: Comparer.GetChanges.


Práce s dokumenty chráněnými heslem

Pokud jsou dokumenty chráněny heslem, lze je i tak porovnat: heslo se předá pomocí LoadOptions při vytváření objektu Comparer. Tento postup funguje stejným způsobem pro Word, PDF i ostatní podporované formáty.

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

Získat bezplatnou zkušební verzi

GroupDocs.Comparison pro .NET si můžete stáhnout ze stránky oficiálních vydání. Pro neomezené testování požádejte o dočasnou licenci — karta není vyžadována.


Často kladené otázky

Q: Potřebuji mít na serveru nainstalovaný Microsoft Word nebo Office?
A: Ne. GroupDocs.Comparison je samostatná .NET knihovna; sama čte a zapisuje soubory DOCX.

Q: Můžu porovnávat dokumenty i v jiných formátech než Word?
A: Ano — knihovna podporuje PDF, tabulky Excel, prezentace, textové soubory a mnohé další. Kompletní seznam najdete v dokumentaci.

Q: Co se stane, když nenastavím licenci?
A: Knihovna pracuje v evaluačním režimu. Výstupní dokumenty obsahují vodoznak a zpracovávají se jen první stránky. Dočasná licence tyto omezení pro testování odstraní.

Q: Lze upravit barvy zvýraznění?
A: Výchozí barvy stačí pro většinu případů. Pro pokročilé nastavení stylů použijte vlastnost StyleSettings v CompareOptions.


Závěr

GroupDocs.Comparison pro .NET nabízí dva čisté způsoby, jak rozdíly ve Word dokumentech porovnat přímo z kódu. Režim revizí se přímo zapojí do pracovního postupu recenzí, který váš tým již používá; režim zvýraznění poskytne okamžitý vizuální souhrn pro ty, kteří potřebují jen rychle vidět změny. Třída WordCompareOptions vám umožní doladit výstup — od detekce stylu a přiřazení autora až po porovnání záložek a vlastností dokumentu.

Vyberte režim, který odpovídá vašemu scénáři, nebo vygenerujte oba a nechte každé publikum zvolit preferovaný náhled.

Další zdroje