Inleiding

Of je nu werkt met contracten, interne beleidsregels, technische specificaties of marketingteksten, het patroon is hetzelfde: je accumuleert snel verschillende .docx-versies en moet op een bepaald moment zien wat er precies tussen deze versies is veranderd. Het ingebouwde Compare‑dialoogvenster van Word is voldoende voor een incidentele handmatige controle, maar het biedt weinig hulp als het vergelijken deel wordt van een regulier proces of geautomatiseerd moet worden op de server.

GroupDocs.Comparison for .NET stelt je in staat die vergelijking vanuit code uit te voeren en het resultaat te leveren in het formaat dat je reviewers verkiezen. De bibliotheek ondersteunt twee uitvoermodi voor Word‑documenten:

  1. Revisiemodus — verschillen worden geschreven als Word‑revisie‑ (track‑changes)‑opmaak. Reviewers openen het bestand, zien de bekende Review → Accept / Reject‑besturingen en werken de wijzigingen één voor één af.
  2. Markeermodus — ingevoegde, verwijderde en gewijzigde tekst wordt direct in de documentinhoud weergegeven met kleurmarkeringen, zodat verschillen in één oogopslag zichtbaar zijn terwijl je de eindtekst leest.

In dit artikel lopen we beide benaderingen stap voor stap door met werkende C#‑voorbeelden, verkennen we de klasse WordCompareOptions en diens eigenschappen, en bespreken we wanneer elke modus meer zin heeft.

Vereisten

Voordat je begint:

  • .NET 6.0 of hoger.
  • GroupDocs.Comparison for .NET — installeren via NuGet:
dotnet add package GroupDocs.Comparison
  • Een licentiebestand (GroupDocs.Comparison.lic). Zonder dit bestand draait de bibliotheek in evaluatiemodus met watermerken en groottelimieten. Je kunt een tijdelijke licentie aanvragen voor testdoeleinden.
  • Twee Word‑bestanden om te vergelijken — we noemen ze source.docx en target.docx. Voorbeeldinhoud:
source.docx target.docx

Methode 1: Revisie‑Track Vergelijking

Wanneer te gebruiken: reviewers moeten elke wijziging afzonderlijk accepteren of afwijzen in Microsoft Word met de ingebouwde Review → Accept / Reject‑tools — bijvoorbeeld tijdens contractonderhandelingen of beleidsgoedkeuringscycli.

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

Resulterend document in revisie‑ (track changes)‑modus:

Comparison result in revision (track changes) mode

Wat er onder de motorkap gebeurt:

  • ComparisonDisplayMode.Revisions instrueert de engine om native Word‑track‑changes‑opmaak te genereren.
  • DetectStyleChanges = true zorgt ervoor dat de vergelijking opmaakverschillen (vet, lettergrootte, kleur) oppikt naast tekstuele bewerkingen.
  • Het uitvoerbestand opent in Microsoft Word met het Review‑paneel gereed — elke invoeging, verwijdering en stijlwijziging staat vermeld en kan worden geaccepteerd of afgewezen.

Omdat revisiemodus de documentinhoud niet opnieuw hoeft te renderen — het voegt simpelweg revisiemetadata toe — is deze doorgaans de snellere van de twee modi.


Methode 2: Markeermodus Vergelijking

Wanneer te gebruiken: stakeholders willen een overzichtelijk document dat duidelijk toont wat er veranderd is, maar hebben geen behoefte om elke afzonderlijke revisie af te handelen. Een typisch scenario is een manager die de laatste versie in Word opent en snel de gemarkeerde invoegingen en verwijderingen scant om de impact van de update te begrijpen.

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

Resulterend document in markeermodus:

Comparison result in highlight mode

Wat er onder de motorkap gebeurt:

  • ComparisonDisplayMode.Highlight rendert verschillen als inline‑kleurmarkeringen — rood voor verwijderingen, groen voor invoegingen, blauw voor stijlwijzigingen (standaardkleuren die aangepast kunnen worden via WordCompareOptions / CompareOptions en hun gerelateerde StyleSettings).
  • Het document is klaar om gelezen of afgedrukt te worden zonder extra stappen.
  • Er wordt geen track‑changes‑metadata aan het bestand toegevoegd.

Markeermodus vereist meer interne verwerking omdat de feitelijke documentinhoud moet worden aangepast en opmaak moet worden toegepast. Voor grote bestanden kun je een merkbaar prestatieverschil merken ten opzichte van revisiemodus.


Verkennen van WordCompareOptions

Beide bovenstaande voorbeelden gebruiken WordCompareOptions — een klasse die de algemene instellingen van CompareOptions erft en eigenschappen toevoegt die specifiek zijn voor Word‑documenten. Via dit type bestuur je de weergavemodus (DisplayMode), of stijlwijzigingen moeten worden getraceerd (DetectStyleChanges), welke auteurnaam bij revisies verschijnt (RevisionAuthorName), hoe regelbreuken, bladwijzers enzovoort worden verwerkt.

Bovendien biedt de basis‑klasse CompareOptions stijlen voor ingevoegde, verwijderde en gewijzigde items (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), zodat je kleuren en opmaak van de markeringen kunt afstemmen wanneer dat nodig is.

Hier is een klein voorbeeld van het configureren van opties voor een puur tekst‑check in revisiemodus:

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

Wijzigingen Programmatically Ophalen

Ongeacht welke uitvoermodus je kiest (revisies of markeringen), kun je altijd een gestructureerde lijst van gedetecteerde verschillen verkrijgen via de gemeenschappelijke Comparer.GetChanges‑API. Deze methode werkt voor Word en alle andere ondersteunde formaten.

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

    comparer.Compare("result_revision.docx");

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

Dit is handig wanneer je de wijzigingen moet nabewerken in je eigen workflow — bijvoorbeeld om een aangepast HTML‑rapport te genereren, verschillen in een reviewsysteem te voeden, of statistieken over edits te aggregeren. Zie de officiële API‑referentie voor meer details: Comparer.GetChanges.


Werken met Wachtwoord‑Beveiligde Documenten

Als documenten met een wachtwoord zijn beveiligd, kunnen ze nog steeds worden vergeleken: het wachtwoord wordt doorgegeven via LoadOptions bij het maken van de Comparer. Deze aanpak werkt op dezelfde manier voor Word, PDF en andere ondersteunde formaten.

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

Een Gratis Proefversie

Je kunt GroupDocs.Comparison for .NET downloaden van de officiële releases‑pagina. Voor onbeperkt testen kun je een tijdelijke licentie aanvragen — zonder creditcard.


Veelgestelde Vragen

V: Heb ik Microsoft Word of Office nodig op de server?
A: Nee. GroupDocs.Comparison is een zelfstandige .NET‑bibliotheek; hij leest en schrijft DOCX‑bestanden zelfstandig.

V: Kan ik documenten vergelijken in andere formaten dan Word?
A: Ja — de bibliotheek ondersteunt PDF‑s, Excel‑werkbladen, presentaties, platte‑tekstbestanden en nog veel meer. De volledige lijst vind je in de documentatie.

V: Wat gebeurt er als ik geen licentie instel?
A: De bibliotheek draait in evaluatiemodus. Uitvoerdocumenten bevatten een watermerk en alleen de eerste paar pagina’s worden verwerkt. Een tijdelijke licentie verwijdert deze beperkingen voor testdoeleinden.

V: Kan ik de highlight‑kleuren aanpassen?
A: De standaardkleuren werken voor de meeste scenario’s. Voor geavanceerde stijl‑controle kun je de eigenschap StyleSettings op CompareOptions bekijken.


Conclusie

GroupDocs.Comparison for .NET biedt je twee nette manieren om Word‑documenten te vergelijken vanuit code. Revisiemodus sluit direct aan op de review‑workflow die je team al gebruikt; markeermodus levert een directe visuele samenvatting voor mensen die alleen de veranderingen moeten zien. De klasse WordCompareOptions laat je de output fijn afstemmen — van stijldetectie en auteur‑toewijzing tot bladwijzer‑ en document‑eigenschap‑vergelijking.

Kies de modus die bij jouw scenario past, of genereer beide en laat elk publiek de weergave kiezen die zij prefereren.

Aanvullende bronnen