Tekstverwerkingsdocumenten zijn de meest gebruikelijke manier om contracten, overeenkomsten, papieren en vele andere officiële documenten op te stellen. Als u twee Word-documenten moet vergelijken en samenvoegen, net als de track changes-optie van Microsoft Word, kunnen we dit programmatisch doen binnen onze .NET-applicaties. In dit artikel bespreken we hoe u twee Word-documenten kunt vergelijken en de geïdentificeerde verschillen kunt benadrukken met behulp van C#. Daarnaast bekijken we hoe u met een wachtwoord beveiligde documenten kunt vergelijken, wijzigingen kunt accepteren en weigeren en hoe u meer dan twee documenten kunt vergelijken met C#-voorbeelden.

Vergelijk Word-documenten om verschillen te vinden met behulp van .NET API

De volgende onderwerpen worden hier besproken:

.NET API om Word-documenten te vergelijken

GroupDocs.Comparison biedt een .NET API waarmee verschillende documenten van meerdere bestandsindelingen kunnen worden vergeleken en vervolgens worden samengevoegd binnen de .NET-toepassing. Ik zal zijn .NET API gebruiken, dwz GroupDocs.Comparison for .NET om Word-documenten te vergelijken.

U kunt de DLL’s of het MSI-installatieprogramma downloaden van de downloads-sectie of de API in uw .NET-toepassing installeren via NuGet.

PM> Install-Package GroupDocs.Comparison

Vergelijk Word-documenten met C#

Als u twee versies van een document heeft, kunt u de documenten vergelijken om hun verschillen (toevoegingen, verwijderingen) te vinden en een nieuw document maken dat alle wijzigingen laat zien. Hieronder volgen de stappen om twee willekeurige Word-documenten te vergelijken en de verschillen te benadrukken.

  • Laad het eerste Word-document met de klasse Comparer.
  • Voeg het tweede bestand toe aan Comparer met de methode Add().
  • Vergelijk en krijg de samenvatting van de wijzigingen door de methode Compare() aan te roepen.

De volgende C#-code laat zien hoe u Word-documenten kunt vergelijken en de wijzigingen in het resulterende document kunt ophalen.

/*
 * Vergelijk twee Word-documenten en markeer wijzigingen met behulp van C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Accepteer of verwerp geïdentificeerde wijzigingen van Word-documenten met behulp van C#

Net als bij de track changes-optie van MS Word, kunt u elke geïdentificeerde wijziging accepteren of weigeren. Hieronder volgen de stappen om de geïdentificeerde wijzigingen in de Word-documenten te vergelijken en vervolgens te accepteren of te weigeren.

  • Laad het brondocument en voeg doel-Word-documenten toe met de klasse Comparer.
  • Maak de vergelijking van geladen documenten met de methode Compare().
  • Haal de geïdentificeerde wijzigingen op met de methode GetChanges().
  • Nu kunt u de wijzigingen doorlopen en ComparisonAction van elke wijziging instellen.
    • Voor elke wijziging kunt u Accepteren of Weigeren selecteren.
  • Als u klaar bent met de wijzigingen, roept u de methode ApplyChanges() aan om het resulterende document met de toegepaste wijzigingen op te halen.

De volgende C#-broncode vergelijkt twee Word-documenten en accepteert vervolgens een geïdentificeerde wijziging en wijst vervolgens een andere af.

/*
 * Accepteer en verwerp geïdentificeerde wijzigingen door Word-documenten te vergelijken met C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // De eerste geïdentificeerde wijziging wordt afgewezen en deze wordt niet toegevoegd aan het resultaatdocument
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

Vergelijk meer dan twee documenten met C#

Evenzo kunnen meer dan twee documenten in één keer worden vergeleken. Hieronder volgen de stappen om meerdere Word-documenten te vergelijken op verschillen en de geïdentificeerde wijzigingen te markeren.

  • Laad het eerste Word-document met de klasse Comparer.
  • Blijf de andere documenten aan Comparer toevoegen met behulp van de methode Add().
  • Roep de methode Compare() aan om de wijzigingen en de samenvatting van de wijzigingen op te halen.

De volgende C#-code laat zien hoe u meer dan twee Word-documenten kunt vergelijken en de wijzigingen in het resulterende document kunt ophalen.

/*
 * Vergelijk meerdere Word-documenten met C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

Vergelijk wachtwoordbeveiligde Word-documenten met C#

Als uw documenten met een wachtwoord zijn beveiligd, geeft u gewoon hun wachtwoord op tijdens het laden van de documenten. De volgende stappen laten zien hoe we de inhoud van met een wachtwoord beveiligde documenten kunnen vergelijken met behulp van C#.

  • Bereid de laadopties voor bron- en doeldocumenten voor door het wachtwoord op te geven.
  • Laad het brondocument met de klasse Comparer.
  • Voeg het doeldocument toe aan Comparer met behulp van de voorbereide laadopties.
  • Haal de samenvatting van de verschillen op door de methode Compare() aan te roepen.

Het volgende C#-codevoorbeeld vergelijkt twee met een wachtwoord beveiligde Word-bestanden en genereert het resulterende document waarin de verschillen worden benadrukt.

/*
 * Vergelijk wachtwoordbeveiligde Word-documenten met C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Ontvang een gratis API-licentie

U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.

Conclusie

Tot slot hebben we geleerd om twee of meer Word-documenten te vergelijken met behulp van C#. Verder, nadat we de verschillen hadden benadrukt, leerden we om de geïdentificeerde wijzigingen programmatisch te accepteren en te verwerpen. Uiteindelijk bespraken we ook hoe we de met een wachtwoord beveiligde Word-documenten binnen .NET-applicaties konden vergelijken.

Er zijn veel andere aanpassingen om de vergelijkingsresultaten te beheren, zoals het instellen van de vergelijkingsgevoeligheid, het tonen van alleen de overzichtspagina, het negeren van hiaten en nog veel meer. Meer informatie over GroupDocs.Comparison for .NET. Bezoek de documentatie om te beginnen met het bouwen van uw eigen documentvergelijkingsapplicaties voor verschillende ondersteunde documentindelingen. Neem voor vragen contact met ons op via het forum.

Zie ook