Introduction
Que vous travailliez avec des contrats, des politiques internes, des spécifications techniques ou des copies marketing, le schéma est le même : vous accumulez rapidement plusieurs versions .docx et, à un moment donné, vous devez voir exactement ce qui a changé entre elles. La boîte de dialogue Compare intégrée à Word suffit pour une vérification manuelle occasionnelle, mais elle n’aide pas beaucoup lorsque la comparaison devient une partie d’un processus régulier ou doit être automatisée côté serveur.
GroupDocs.Comparison for .NET vous permet d’exécuter cette comparaison depuis le code et de produire le résultat dans le format préféré de vos relecteurs. La bibliothèque prend en charge deux modes de sortie pour les documents Word :
- Mode révision — les différences sont écrites sous forme de balisage de révision (suivi des modifications) Word. Les relecteurs ouvrent le fichier, voient les familiers contrôles Review → Accept / Reject et traitent les changements un par un.
- Mode surlignage — le texte inséré, supprimé et modifié est affiché avec des surlignages colorés directement dans le corps du document, de sorte que les différences sont visibles d’un coup d’œil pendant la lecture du texte final.
Dans cet article, nous parcourrons les deux approches avec des exemples C# fonctionnels, explorerons la classe WordCompareOptions et ses propriétés, et discuterons du moment où chaque mode est le plus judicieux.
Prerequisites
Avant de commencer :
- .NET 6.0 ou version ultérieure.
- GroupDocs.Comparison for .NET — installer via NuGet :
dotnet add package GroupDocs.Comparison
- Un fichier de licence (
GroupDocs.Comparison.lic). Sans cela la bibliothèque fonctionne en mode d’évaluation avec filigranes et limites de taille. Vous pouvez demander une licence temporaire pour les tests. - Deux fichiers Word à comparer — nous les appellerons
source.docxettarget.docx. Exemple de contenu :
source.docx |
target.docx |
|---|
Method 1: Revision‑Track Comparison
Quand l’utiliser : les relecteurs doivent accepter ou rejeter chaque modification individuellement dans Microsoft Word à l’aide des outils intégrés Review → Accept / Reject — par exemple, pendant la négociation de contrats ou les cycles d’approbation de politiques.
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);
}
Document résultant en mode révision (suivi des modifications) :
Ce qui se passe sous le capot :
ComparisonDisplayMode.Revisionsindique au moteur d’émettre le balisage natif de suivi des modifications Word.DetectStyleChanges = truefait en sorte que la comparaison prenne en compte les différences de formatage (gras, taille de police, couleur) en plus des modifications textuelles.- Le fichier de sortie s’ouvre dans Microsoft Word avec le volet Review prêt — chaque insertion, suppression et ajustement de style est listé et peut être accepté ou rejeté.
Comme le mode révision n’a pas besoin de re‑rendre le contenu du document — il se contente d’attacher des métadonnées de révision — il a tendance à être le plus rapide des deux modes.
Method 2: Highlight‑Mode Comparison
Quand l’utiliser : les parties prenantes veulent un document épuré qui montre clairement ce qui a changé, mais ne sont pas intéressées à parcourir chaque révision. Un scénario typique est un responsable qui ouvre la dernière version dans Word et parcourt rapidement les insertions et suppressions surlignées pour comprendre l’impact de la mise à jour.
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);
}
Document résultant en mode surlignage :
Ce qui se passe sous le capot :
ComparisonDisplayMode.Highlightrend les différences sous forme de surlignages couleur en ligne — rouge pour les suppressions, vert pour les insertions, bleu pour les changements de style (couleurs par défaut qui peuvent être ajustées viaWordCompareOptions/CompareOptionset leursStyleSettingsassociés).- Le document est prêt à être lu ou imprimé sans étapes supplémentaires.
- Aucune métadonnée de suivi des modifications n’est ajoutée au fichier.
Le mode surlignage effectue davantage de travail en interne car il doit modifier le contenu réel du document et appliquer le formatage. Pour les gros fichiers, vous remarquerez une différence de performance notable comparée au mode révision.
Exploring WordCompareOptions
Les deux exemples ci‑dessus utilisent WordCompareOptions — une classe qui hérite des paramètres communs de CompareOptions et ajoute des propriétés spécifiques aux documents Word. Grâce à ce type, vous contrôlez le mode d’affichage (DisplayMode), le suivi des changements de style (DetectStyleChanges), le nom d’auteur affiché sur les révisions (RevisionAuthorName), la prise en compte des sauts de ligne, des signets, etc.
En outre, la classe de base CompareOptions expose des styles pour les éléments insérés, supprimés et modifiés (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), ce qui vous permet d’ajuster les couleurs et le formatage des surlignages lorsque nécessaire.
Voici un petit exemple de configuration d’options pour une vérification texte‑seulement en mode révision :
var options = new WordCompareOptions
{
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
DetectStyleChanges = false,
RevisionAuthorName = "QA Bot",
CompareBookmarks = true
};
Getting Changes Programmatically
Quel que soit le mode de sortie que vous choisissez (révisions ou surlignage), vous pouvez toujours obtenir une liste structurée des différences détectées via l’API commune Comparer.GetChanges. Cette méthode fonctionne pour Word et tous les autres formats supportés.
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
comparer.Compare("result_revision.docx");
var changes = comparer.GetChanges(); // renvoie ChangeInfo[]
}
C’est utile lorsque vous devez post‑traiter les changements dans votre propre flux de travail — par exemple, créer un rapport HTML personnalisé, alimenter un système de révision, ou agréger des statistiques sur les éditions. Consultez la référence officielle de l’API pour plus de détails : Comparer.GetChanges.
Working with Password‑Protected Documents
Si les documents sont protégés par un mot de passe, ils peuvent quand même être comparés : le mot de passe est transmis via LoadOptions lors de la création du Comparer. Cette approche fonctionne de la même façon pour Word, PDF et les autres formats supportés.
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);
}
Get a Free Trial
Vous pouvez télécharger GroupDocs.Comparison for .NET depuis la page officielle des versions. Pour des tests sans restriction, demandez une licence temporaire — aucune carte de crédit requise.
Frequently Asked Questions
Q : Dois‑je avoir Microsoft Word ou Office installé sur le serveur ?
R : Non. GroupDocs.Comparison est une bibliothèque .NET autonome ; elle lit et écrit les fichiers DOCX de façon indépendante.
Q : Puis‑je comparer des documents dans d’autres formats que Word ?
R : Oui — la bibliothèque supporte les PDF, les classeurs Excel, les présentations, les fichiers texte brut, et bien d’autres. La liste complète se trouve dans la documentation.
Q : Que se passe‑t‑il si je ne définis pas de licence ?
R : La bibliothèque fonctionne en mode d’évaluation. Les documents de sortie contiendront un filigrane et seules les premières pages seront traitées. Une licence temporaire supprime ces restrictions pour les tests.
Q : Puis‑je personnaliser les couleurs de surlignage ?
R : Les couleurs par défaut conviennent à la plupart des cas d’usage. Pour un contrôle de style avancé, consultez la propriété StyleSettings de CompareOptions.
Conclusion
GroupDocs.Comparison for .NET vous offre deux façons propres de différencier les documents Word depuis le code. Le mode révision s’intègre directement dans le flux de travail de révision que votre équipe utilise déjà ; le mode surlignage fournit un résumé visuel instantané pour les personnes qui ont simplement besoin de voir les changements. La classe WordCompareOptions vous permet d’affiner la sortie — de la détection de style et de l’attribution d’auteur à la comparaison des signets et des propriétés du document.
Choisissez le mode qui correspond à votre scénario, ou générez les deux et laissez chaque auditoire sélectionner la vue qui lui convient le mieux.