Einführung
Egal, ob Sie mit Verträgen, internen Richtlinien, technischen Spezifikationen oder Marketingtexten arbeiten, das Muster ist dasselbe: Sie sammeln schnell mehrere .docx-Versionen und müssen irgendwann genau sehen, was zwischen ihnen geändert wurde. Der integrierte Compare‑Dialog von Word ist für gelegentliche manuelle Prüfungen in Ordnung, hilft jedoch kaum, wenn der Vergleich Teil eines regulären Prozesses wird oder serverseitig automatisiert werden muss.
GroupDocs.Comparison for .NET ermöglicht es Ihnen, den Vergleich aus Code auszuführen und das Ergebnis im von Ihren Prüfern bevorzugten Format zu erzeugen. Die Bibliothek unterstützt zwei Ausgabemodi für Word‑Dokumente:
- Revisionsmodus — Unterschiede werden als Word‑Revisions‑(nachverfolgungs‑)Markierung geschrieben. Prüfer öffnen die Datei, sehen die vertrauten Review → Accept / Reject‑Steuerelemente und bearbeiten die Änderungen einzeln.
- Highlight‑Modus — eingefügter, gelöschter und geänderter Text wird direkt im Dokumentenkörper mit farbigen Hervorhebungen dargestellt, sodass Unterschiede auf einen Blick sichtbar sind, während Sie den endgültigen Text lesen.
In diesem Artikel gehen wir beide Ansätze mit funktionierenden C#‑Beispielen durch, untersuchen die Klasse WordCompareOptions und deren Eigenschaften und diskutieren, wann welcher Modus sinnvoller ist.
Voraussetzungen
Bevor Sie beginnen:
- .NET 6.0 oder höher.
- GroupDocs.Comparison for .NET — Installation via NuGet:
dotnet add package GroupDocs.Comparison
- Eine Lizenzdatei (
GroupDocs.Comparison.lic). Ohne diese läuft die Bibliothek im Evaluierungsmodus mit Wasserzeichen und Größenbeschränkungen. Sie können für Tests eine temporäre Lizenz anfordern. - Zwei Word‑Dateien zum Vergleich — wir nennen sie
source.docxundtarget.docx. Beispielinhalt:
source.docx |
target.docx |
|---|
Methode 1: Revisions‑Tracking‑Vergleich
Wann zu verwenden: Prüfer müssen jede Änderung einzeln in Microsoft Word mithilfe der integrierten Review → Accept / Reject‑Werkzeuge akzeptieren oder ablehnen — beispielsweise während Vertragsverhandlungen oder Genehmigungszyklen von Richtlinien.
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);
}
Ergebnisdokument im Revisions‑(Nachverfolgungs‑)Modus:
Was im Hintergrund passiert:
ComparisonDisplayMode.Revisionsweist die Engine an, native Word‑Nachverfolgungs‑Markups zu erzeugen.DetectStyleChanges = truelässt den Vergleich Formatierungsunterschiede (Fett, Schriftgröße, Farbe) neben Textänderungen erfassen.- Die Ausgabedatei öffnet sich in Microsoft Word mit dem bereits geöffneten Review‑Bereich — jede Einfügung, Löschung und Stiländerung wird aufgelistet und kann akzeptiert oder abgelehnt werden.
Da der Revisionsmodus den Dokumentinhalt nicht neu rendern muss — er fügt lediglich Revisions‑Metadaten hinzu — ist er in der Regel der schnellere der beiden Modi.
Methode 2: Highlight‑Modus‑Vergleich
Wann zu verwenden: Stakeholder möchten ein sauberes Dokument, das klar zeigt, was geändert wurde, sind jedoch nicht daran interessiert, jede einzelne Revision durchzugehen. Ein typisches Szenario ist ein Manager, der die neueste Version in Word öffnet und schnell hervorgehobene Einfügungen und Löschungen scannt, um die Auswirkungen des Updates zu verstehen.
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);
}
Ergebnisdokument im Highlight‑Modus:
Was im Hintergrund passiert:
ComparisonDisplayMode.Highlightrendert Unterschiede als eingebaute Farb‑Highlights — rot für Löschungen, grün für Einfügungen, blau für Stiländerungen (Standardfarben, die überWordCompareOptions/CompareOptionsund die zugehörigenStyleSettingsangepasst werden können).- Das Dokument ist zum Lesen oder Drucken bereit, ohne weitere Schritte.
- Es wird keine Nachverfolgungs‑Metadaten zur Datei hinzugefügt.
Der Highlight‑Modus erfordert mehr interne Arbeit, weil er den eigentlichen Dokumentinhalt ändern und Formatierungen anwenden muss. Bei großen Dateien kann ein signifikanter Leistungsunterschied im Vergleich zum Revisionsmodus bemerkbar sein.
Untersuchung von WordCompareOptions
Beide oben gezeigten Beispiele verwenden WordCompareOptions — eine Klasse, die die allgemeinen Einstellungen von CompareOptions erbt und eigenschaftsspezifisch für Word‑Dokumente hinzufügt. Über diesen Typ steuern Sie den Anzeigemodus (DisplayMode), ob Stiländerungen verfolgt werden (DetectStyleChanges), welcher Autorname bei Revisionen erscheint (RevisionAuthorName), wie Zeilenumbrüche, Lesezeichen usw.
Zusätzlich stellt die Basisklasse CompareOptions Stile für eingefügte, gelöschte und geänderte Elemente (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle) bereit, sodass Sie Farben und Formatierungen der Highlights bei Bedarf feinjustieren können.
Hier ein kleines Beispiel zur Konfiguration von Optionen für eine rein textbasierte Prüfung im Revisionsmodus:
var options = new WordCompareOptions
{
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
DetectStyleChanges = false,
RevisionAuthorName = "QA Bot",
CompareBookmarks = true
};
Änderungen programmgesteuert erhalten
Unabhängig davon, welchen Ausgabemodus Sie wählen (Revisionen oder Highlight), können Sie stets eine strukturierte Liste der erkannten Unterschiede über die gemeinsame API Comparer.GetChanges erhalten. Diese Methode funktioniert für Word und alle anderen unterstützten Formate.
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
comparer.Compare("result_revision.docx");
var changes = comparer.GetChanges(); // returns ChangeInfo[]
}
Dies ist hilfreich, wenn Sie Änderungen in Ihrem eigenen Workflow nachverarbeiten müssen — zum Beispiel, um einen benutzerdefinierten HTML‑Report zu erstellen, Unterschiede in ein Review‑System einzuspeisen oder Statistiken über Bearbeitungen zu aggregieren. Siehe die offizielle API‑Referenz für weitere Details: Comparer.GetChanges.
Arbeiten mit passwortgeschützten Dokumenten
Falls Dokumente mit einem Passwort geschützt sind, können sie trotzdem verglichen werden: Das Passwort wird über LoadOptions beim Erstellen des Comparer übergeben. Dieser Ansatz funktioniert für Word, PDF und andere unterstützte Formate auf die gleiche Weise.
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);
}
Kostenlose Testversion erhalten
Sie können GroupDocs.Comparison für .NET von der offiziellen Release‑Seite herunterladen. Für uneingeschränktes Testen fordern Sie eine temporäre Lizenz an — keine Kreditkarte erforderlich.
Häufig gestellte Fragen
F: Benötige ich Microsoft Word oder Office auf dem Server installiert?
A: Nein. GroupDocs.Comparison ist eine eigenständige .NET‑Bibliothek; sie liest und schreibt DOCX‑Dateien eigenständig.
F: Kann ich Dokumente in anderen Formaten als Word vergleichen?
A: Ja — die Bibliothek unterstützt PDFs, Excel‑Tabellen, Präsentationen, reine Textdateien und vieles mehr. Die vollständige Liste finden Sie in der Dokumentation.
F: Was passiert, wenn ich keine Lizenz festlege?
A: Die Bibliothek arbeitet im Evaluierungsmodus. Ausgabedokumente enthalten ein Wasserzeichen und nur die ersten wenigen Seiten werden verarbeitet. Eine temporäre Lizenz entfernt diese Einschränkungen für Tests.
F: Kann ich die Highlight‑Farben anpassen?
A: Die Standardfarben reichen für die meisten Anwendungsfälle. Für erweiterte Styling‑Kontrolle prüfen Sie die Eigenschaft StyleSettings von CompareOptions.
Fazit
GroupDocs.Comparison for .NET bietet Ihnen zwei saubere Methoden, Word‑Dokumente aus Code zu vergleichen. Der Revisionsmodus fügt sich nahtlos in den bereits von Ihrem Team genutzten Review‑Workflow ein; der Highlight‑Modus liefert eine sofortige visuelle Zusammenfassung für Personen, die die Änderungen nur sehen möchten. Die Klasse WordCompareOptions erlaubt feine Anpassungen der Ausgabe — von der Stilerkennung und Autorzuordnung bis hin zum Vergleich von Lesezeichen und Dokumenteneigenschaften.
Wählen Sie den Modus, der zu Ihrem Szenario passt, oder erzeugen Sie beide und lassen Sie jede Zielgruppe ihre bevorzugte Ansicht wählen.