Úvod
Ať už pracujete s 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 nějaké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 moc nepomůže, když se porovnání stane součástí pravidelného procesu nebo musí být automatizováno na serveru.
GroupDocs.Comparison for .NET vám umožňuje provést toto porovnání z kódu a vytvořit výsledek v formátu, který vašim recenzentům vyhovuje. Knihovna podporuje dva režimy výstupu pro Word dokumenty:
- Režim revizí — rozdíly jsou zapsány jako značení revizí (track‑changes) ve Wordu. Recenzenti otevřou soubor, uvidí známé ovládací prvky Review → Accept / Reject a projdou změny jednu po druhé.
- Režim zvýraznění — vložený, smazaný a upravený text je zobrazen pomocí barevných zvýraznění přímo v těla dokumentu, takže rozdíly jsou na první pohled patrné při čtení finálního textu.
V tomto článku projdeme oba přístupy pomocí funkčních C# příkladů, prozkoumáme třídu WordCompareOptions a její vlastnosti a probereme, kdy který režim dává větší smysl.
Požadavky
Před zahájením:
- .NET 6.0 nebo novější.
- GroupDocs.Comparison for .NET — nainstalujte přes NuGet:
dotnet add package GroupDocs.Comparison
- Licenční soubor (
GroupDocs.Comparison.lic). Bez něj knihovna běží v režimu hodnocení s vodoznakem a omezeními velikosti. Můžete požádat o dočasnou licenci pro testování. - Dva Word soubory k porovnání — nazveme je
source.docxatarget.docx. Příklad obsahu:
source.docx |
target.docx |
|---|
Metoda 1: Porovnání s track‑changes
Kdy použít: recenzenti potřebují v Microsoft Wordu jednotlivé změny přijímat nebo odmítat pomocí vestavěných nástrojů Review → Accept / Reject — např. během vyjednávání smluv nebo schvalovacích cyklů.
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í (track changes):
Co se děje pod pokličkou:
ComparisonDisplayMode.Revisionsříká engine, aby emitoval nativní značení revizí Wordu.DetectStyleChanges = truezpůsobí, že porovnání zachytí i formátovací rozdíly (tučný text, velikost písma, barvu) vedle textových úprav.- Výstupní soubor se otevře v Microsoft Wordu s panelem Review připraveným — každé vložení, smazání a úprava stylu je vypsána a může být přijata nebo odmítnuta.
Protože režim revizí nepotřebuje přetvářet obsah dokumentu — jen připojuje metadata revizí — bývá obvykle rychlejší než druhý režim.
Metoda 2: Porovnání se zvýrazněním
Kdy použít: stakeholderi chtějí čistý dokument, který jasně ukazuje, co se změnilo, ale nechtějí procházet každou jednotlivou revizi. 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í:
Co se děje pod pokličkou:
ComparisonDisplayMode.Highlightvykreslí rozdíly jako inline barevná zvýraznění — červená pro smazání, zelená pro vložení, modrá pro změny stylu (výchozí barvy lze upravit přesWordCompareOptions/CompareOptionsa jejich souvisejícíStyleSettings).- Dokument je připraven k čtení nebo tisku bez dalších kroků.
- Do souboru nejsou přidána metadata track‑changes.
Režim zvýraznění provádí více práce interně, protože musí měnit samotný obsah dokumentu a aplikovat formátování. U větší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í obecná nastavení z CompareOptions a přidává vlastnosti specifické pro Word dokumenty. Pomocí tohoto typu řídíte režim zobrazení (DisplayMode), zda sledovat změny stylu (DetectStyleChanges), jaké jméno autora se objeví u revizí (RevisionAuthorName), jak zacházet s řádkovými zlomy, záložkami atd.
Navíc základní CompareOptions odhaluje 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 čistě textovou kontrolu 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 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 změny dále zpracovávat ve svém workflow — např. vytvořit vlastní HTML report, nasměrovat rozdíly do systému revizí nebo agregovat statistiky o úpravách. Viz oficiální reference API pro podrobnosti: 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í Comparer. Tento postup funguje stejným způsobem pro Word, PDF i další 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 for .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; čte a zapisuje DOCX soubory sama.
Q: Můžu porovnávat dokumenty i v jiných formátech než Word?
A: Ano — knihovna podporuje PDF, Excel, prezentace, prostý text a mnoho dalších. Kompletní seznam najdete v dokumentaci.
Q: Co se stane, když nenastavím licenci?
A: Knihovna běží v režimu hodnocení. Výstupní dokumenty budou obsahovat vodoznak a zpracuje se jen několik prvních stránek. Dočasná licence tyto omezení pro testování odstraní.
Q: Můžu přizpůsobit barvy zvýraznění?
A: Výchozí barvy vyhovují většině případů. Pro pokročilé nastavení stylu použijte vlastnost StyleSettings na CompareOptions.
Závěr
GroupDocs.Comparison for .NET vám nabízí dva čisté způsoby, jak porovnávat Word dokumenty z kódu. Režim revizí se přímo připojuje k workflow revize, který váš tým již používá; režim zvýraznění poskytuje okamžitý vizuální souhrn pro ty, kteří chtějí jen vidět změny. Třída WordCompareOptions vám umožní vyladit výstup — od detekce stylu a autorství 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 si preferovaný pohled.