Introduzione
Che tu lavori con contratti, politiche interne, specifiche tecniche o copie di marketing, il modello è lo stesso: accumuli rapidamente diverse versioni .docx e a un certo punto devi vedere esattamente cosa è cambiato tra di esse. La finestra di dialogo Confronta integrata in Word è sufficiente per un controllo manuale occasionale, ma non aiuta molto quando il confronto diventa parte di un processo regolare o deve essere automatizzato sul lato server.
GroupDocs.Comparison for .NET ti consente di eseguire quel confronto dal codice e di produrre il risultato nel formato preferito dai tuoi revisori. La libreria supporta due modalità di output per i documenti Word:
- Modalità revisione — le differenze sono scritte come markup di revisione (tracciamento delle modifiche) di Word. I revisori aprono il file, vedono i famosi controlli Revision → Accept / Reject e lavorano sui cambiamenti uno per volta.
- Modalità evidenziazione — il testo inserito, eliminato e modificato viene mostrato con evidenziazioni colorate direttamente nel corpo del documento, così le differenze sono visibili a colpo d’occhio durante la lettura del testo finale.
In questo articolo esamineremo entrambi gli approcci con esempi C# funzionanti, esploreremo la classe WordCompareOptions e le sue proprietà, e discuteremo quando ciascuna modalità ha più senso.
Prerequisiti
Prima di iniziare:
- .NET 6.0 o successivo.
- GroupDocs.Comparison for .NET — installa tramite NuGet:
dotnet add package GroupDocs.Comparison
- Un file di licenza (
GroupDocs.Comparison.lic). Senza di esso la libreria gira in modalità di valutazione con filigrane e limiti di dimensione. Puoi richiedere una licenza temporanea per i test. - Due file Word da confrontare — li chiameremo
source.docxetarget.docx. Contenuto di esempio:
source.docx |
target.docx |
|---|
Metodo 1: Confronto con Tracciamento delle Revisioni
Quando usarlo: i revisori devono accettare o rifiutare ogni modifica singolarmente in Microsoft Word usando gli strumenti integrati Revision → Accept / Reject — ad esempio durante le negoziazioni di contratti o i cicli di approvazione delle politiche.
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);
}
Documento risultante in modalità revisione (tracciamento delle modifiche):
Cosa succede dietro le quinte:
ComparisonDisplayMode.Revisionsindica al motore di emettere markup nativo di tracciamento delle modifiche di Word.DetectStyleChanges = truefa sì che il confronto rilevi differenze di formattazione (grassetto, dimensione del carattere, colore) oltre alle modifiche testuali.- Il file di output si apre in Microsoft Word con il riquadro Review pronto — ogni inserimento, eliminazione e modifica di stile è elencata e può essere accettata o rifiutata.
Poiché la modalità revisione non necessita di ricreare il contenuto del documento — si limita ad allegare metadati di revisione — tende ad essere la più veloce delle due modalità.
Metodo 2: Confronto in Modalità Evidenziazione
Quando usarlo: gli stakeholder vogliono un documento pulito che mostri chiaramente cosa è cambiato, ma non sono interessati a lavorare su ogni singola revisione. Uno scenario tipico è un manager che apre l’ultima versione in Word e scansiona rapidamente le evidenziazioni di inserzioni e cancellazioni per capire l’impatto dell’aggiornamento.
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);
}
Documento risultante in modalità evidenziazione:
Cosa succede dietro le quinte:
ComparisonDisplayMode.Highlightrende le differenze come evidenziazioni colorate in linea — rosso per le cancellazioni, verde per le inserzioni, blu per le modifiche di stile (colori predefiniti che possono essere regolati tramiteWordCompareOptions/CompareOptionse le relativeStyleSettings).- Il documento è pronto per la lettura o la stampa senza passaggi aggiuntivi.
- Nessun metadato di tracciamento delle modifiche viene aggiunto al file.
La modalità evidenziazione richiede più lavoro internamente perché deve modificare il contenuto reale del documento e applicare la formattazione. Per file di grandi dimensioni potresti notare una differenza di prestazioni significativa rispetto alla modalità revisione.
Esplorare WordCompareOptions
Entrambi gli esempi sopra usano WordCompareOptions — una classe che eredita le impostazioni comuni da CompareOptions e aggiunge proprietà specifiche per i documenti Word. Attraverso questo tipo controlli la modalità di visualizzazione (DisplayMode), se tracciare le modifiche di stile (DetectStyleChanges), quale nome autore appare sulle revisioni (RevisionAuthorName), come gestire interruzioni di riga, segnalibri, ecc.
Inoltre, la classe base CompareOptions espone gli stili per gli elementi inseriti, cancellati e modificati (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), così puoi affinare colori e formattazione delle evidenziazioni quando necessario.
Ecco un piccolo esempio di configurazione delle opzioni per un controllo solo testuale in modalità revisione:
var options = new WordCompareOptions
{
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
DetectStyleChanges = false,
RevisionAuthorName = "QA Bot",
CompareBookmarks = true
};
Ottenere le Modifiche Programmaticamente
Indipendentemente dalla modalità di output scelta (revisioni o evidenziazione), puoi sempre ottenere un elenco strutturato delle differenze rilevate tramite l’API comune Comparer.GetChanges. Questo metodo funziona per Word e per tutti gli altri formati supportati.
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
comparer.Compare("result_revision.docx");
var changes = comparer.GetChanges(); // returns ChangeInfo[]
}
È utile quando devi post‑elaborare le modifiche nel tuo workflow — ad esempio per generare un report HTML personalizzato, alimentare le differenze in un sistema di revisione, o aggregare statistiche sulle modifiche. Consulta il riferimento API ufficiale per ulteriori dettagli: Comparer.GetChanges.
Lavorare con Documenti Protetti da Password
Se i documenti sono protetti da password, possono comunque essere confrontati: la password viene passata tramite LoadOptions quando si crea il Comparer. Questo approccio funziona allo stesso modo per Word, PDF e gli altri formati supportati.
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);
}
Ottieni una Prova Gratuita
Puoi scaricare GroupDocs.Comparison for .NET dalla pagina ufficiale delle versioni. Per test senza restrizioni, richiedi una licenza temporanea — nessuna carta di credito richiesta.
Domande Frequenti
D: È necessario avere Microsoft Word o Office installato sul server?
R: No. GroupDocs.Comparison è una libreria .NET autonoma; legge e scrive file DOCX in modo indipendente.
D: Posso confrontare documenti in altri formati oltre a Word?
R: Sì — la libreria supporta PDF, fogli Excel, presentazioni, file di testo semplice e molti altri. L’elenco completo è nella documentazione.
D: Cosa succede se non imposto una licenza?
R: La libreria funziona in modalità di valutazione. I documenti di output conterranno una filigrana e saranno elaborati solo le prime pagine. Una licenza temporanea rimuove queste restrizioni per i test.
D: Posso personalizzare i colori di evidenziazione?
R: I colori predefiniti sono adeguati per la maggior parte dei casi d’uso. Per un controllo avanzato dello stile, verifica la proprietà StyleSettings su CompareOptions.
Conclusione
GroupDocs.Comparison for .NET ti offre due modalità nette per confrontare documenti Word dal codice. La modalità revisione si integra direttamente nel workflow di revisione che il tuo team utilizza già; la modalità evidenziazione fornisce un riepilogo visivo immediato per chi ha solo bisogno di vedere le modifiche. La classe WordCompareOptions ti permette di affinare l’output — dal rilevamento dello stile e attribuzione dell’autore fino al confronto di segnalibri e proprietà del documento.
Scegli la modalità che meglio si adatta al tuo scenario, oppure genera entrambe e lascia che ogni pubblico selezioni la vista preferita.