Confronta due o più documenti di Word usando C#

Confronta due o più documenti di Word usando C#

È possibile confrontare facilmente due o più documenti di Word o confrontare più versioni dello stesso file di Word per le differenze e le somiglianze a livello di codice nelle applicazioni .NET. In questo articolo imparerai come confrontare due o più documenti di Word ed evidenziare le differenze usando C#.

I seguenti argomenti sono discussi/trattati in questo articolo:

API C# per confrontare i file DOCX

Per confrontare due o più file DOCX, utilizzerò GroupDocs.Comparison for .NET API. Confronta due o più documenti e rileva le modifiche nel contenuto dei documenti per parole, paragrafi e caratteri. Di conseguenza, produce un documento di confronto che evidenzia le differenze ed elenca una sintesi delle differenze. Consente inoltre di rilevare le modifiche e le differenze nello stile del testo tra formati di documenti simili. L’API supporta il confronto di tutti i formati di documenti standard del settore come PDF, HTML, Word, Excel, PowerPoint, e-mail di Outlook, diagrammi di Visio, OpenDocument, AutoCAD e immagini.

Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.

Install-Package GroupDocs.Comparison

Confronta due o più documenti di Word usando C#

Puoi confrontare due o più documenti di Word a livello di codice seguendo i semplici passaggi indicati di seguito:

  1. Crea un’istanza della classe Comparer con il percorso del file DOCX di origine
  2. Chiama il metodo Add() con il file DOCX di destinazione da aggiungere al confronto
  3. Ripetere il passaggio precedente per aggiungere più file a confronto
  4. Chiama il metodo Compare() con il percorso del file di output

L’esempio di codice seguente mostra come confrontare due o più documenti di Word ed evidenzia le differenze usando C#.

// inizializzare il comparatore
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// aggiungi il file di destinazione da confrontare
comparer.Add("C:\\Files\\target.docx");

// confrontare e salvare le differenze
comparer.Compare("C:\\Files\\result.docx");
File DOCX di origine e di destinazione

File DOCX di origine e di destinazione

Confronta due o più documenti di Word usando C#

Confronta due o più documenti di Word usando C#

Il documento risultante include anche una pagina di riepilogo alla fine del documento che mostra il riepilogo di tutte le modifiche riscontrate nel confronto.

La classe Comparer è la classe principale che consente di controllare ed eseguire il processo di confronto. Fornisce diversi metodi per confrontare due o più documenti. Il metodo Add() di questa classe aggiunge un file al processo di confronto. Puoi facilmente aggiungere più file al confronto usando il metodo Add() come mostrato di seguito:

comparer.Add("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");

Il metodo Compare() della classe Comparer confronta i documenti di origine e di destinazione. Questo metodo evidenzia le differenze e salva i risultati nel percorso del file fornito come parametro di input.

Confronta i documenti di Word usando Stream in C#

Puoi confrontare due o più documenti Word utilizzando FileStream seguendo i passaggi indicati di seguito:

  1. Leggi il file di origine in un oggetto Stream
  2. Leggi il file di destinazione in un altro oggetto Stream
  3. Crea un’istanza della classe Comparer con l’oggetto Stream di origine
  4. Chiama il metodo Add() con l’oggetto Stream di destinazione da aggiungere al confronto
  5. Chiama il metodo Compare() con il percorso del file di output

L’esempio di codice seguente mostra come confrontare i documenti di Word usando FileStream in C#.

// leggere i file di origine e di destinazione
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // inizializzare il comparatore
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // aggiungi il flusso di file di destinazione da confrontare
        comparer.Add(targetStream);

        // confrontare e salvare le differenze
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

Ottieni il testo delle modifiche usando C#

Puoi ottenere il testo delle modifiche riscontrate nel confronto di documenti Word in modo programmatico seguendo i semplici passaggi riportati di seguito:

  1. Crea un’istanza della classe Comparer con il percorso del file DOCX di origine
  2. Chiama il metodo Add() con il file DOCX di destinazione da aggiungere al confronto
  3. Ripetere il passaggio precedente per aggiungere più file a confronto
  4. Chiama il metodo Compare().
  5. Chiama il metodo GetChanges() per ottenere i dettagli delle modifiche
  6. Mostra le modifiche

L’esempio di codice seguente mostra come ottenere il testo delle modifiche usando C#.

// inizializzare il comparatore
Comparer confrontarer = new Comparer("C:\\Files\\source.docx");

// aggiungi il file di destinazione da confrontare
confrontarer.Add("C:\\Files\\target.docx");

// confrontare
confrontarer.Compare();

// ottenere modifiche
ChangeInfo[] changes = confrontarer.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// mostra i cambiamenti
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

È possibile ottenere un elenco delle modifiche tra i file di origine e di destinazione chiamando il metodo GetChanges() della classe Comparer. Restituisce un elenco di oggetti ChangeInfo. La classe ChangeInfo rappresenta le informazioni sulle modifiche e fornisce varie proprietà per ottenere i dettagli delle modifiche come Text, Type, ecc.

Confronto delle proprietà dei documenti utilizzando C#

Puoi confrontare le proprietà predefinite e personalizzate e le proprietà variabili dei documenti di Word a livello di codice seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Comparer con il percorso del file DOCX di origine
  2. Chiama il metodo Add() con il file DOCX di destinazione da aggiungere al confronto
  3. Ripetere il passaggio precedente per aggiungere più file a confronto
  4. Crea un’istanza di CompareOptions
  5. Impostare CompareVariableProperty su true
  6. Impostare CompareDocumentProperty su true
  7. Chiama il metodo Compare() con il percorso del file di output e CompareOptions

Nell’esempio di codice seguente viene illustrato come confrontare le proprietà dei documenti usando C#.

// inizializzare il comparatore
Comparer confrontarer = new Comparer("C:\\Files\\source.docx");

// aggiungi il file di destinazione da confrontare
confrontarer.Add("C:\\Files\\target.docx");

// definire le opzioni di confronto
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// confrontare
confrontarer.Compare("C:\\Files\\result.docx", options);
Confronto delle proprietà dei documenti utilizzando C#

Confronto delle proprietà dei documenti utilizzando C#

Puoi migliorare il tuo processo di confronto applicando varie opzioni di confronto. A tale scopo, la classe CompareOptions consente di impostare varie opzioni di confronto per ottenere risultati specifici. Il CompareDocumentProperty di questa classe consente di attivare il confronto delle proprietà predefinite e personalizzate in formato Word. CompareVariableProperty consente di attivare il confronto delle proprietà delle variabili in formato Word.

Confronta documenti Word protetti da password usando C#

Puoi confrontare due o più documenti Word protetti da password a livello di codice seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe LoadOptions.
  2. Fornire la password per il file di origine
  3. Crea un’istanza della classe Comparer con il percorso del file DOCX di origine e LoadOptions
  4. Chiama il metodo Add() con il percorso del file DOCX di destinazione e l’istanza LoadOptions con la password
  5. Ripetere il passaggio precedente per aggiungere più file a confronto
  6. Chiama il metodo Compare() con il percorso del file di output

L’esempio di codice seguente mostra come confrontare i documenti di Word protetti da password usando C#.

// definire le opzioni di caricamento per il file di origine
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

// inizializzare il comparatore
Comparer confrontarer = new Comparer("C:\\Files\\source.docx", sourceLoadOptions);

// aggiungi il file di destinazione da confrontare
confrontarer.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// confrontare
confrontarer.Compare("C:\\Files\\result.docx");

La classe LoadOptions consente di specificare opzioni aggiuntive durante il caricamento di un documento. Fornisce le seguenti proprietà per specificare:

  • FontDirectories — Elenco di directory di font da caricare.
  • LoadText: indica che le stringhe passate sono testo di confronto, non percorsi di file (solo per Confronto testo).
  • Password — Password del documento.

Confronta i segnalibri nei documenti di Word usando C#

Puoi confrontare i segnalibri disponibili nei documenti di Word a livello di codice seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Comparer con il percorso del file DOCX di origine
  2. Chiama il metodo Add() con il file DOCX di destinazione da aggiungere al confronto
  3. Ripetere il passaggio precedente per aggiungere più file a confronto
  4. Crea un’istanza di CompareOptions
  5. Imposta CompareBookmarks su true
  6. Chiama il metodo Compare() con il percorso del file di output e CompareOptions

L’esempio di codice seguente mostra come confrontare i segnalibri nei documenti di Word usando C#.

// inizializzare il comparatore
Comparer confrontarer = new Comparer("C:\\Files\\source.docx");

// aggiungi il file di destinazione da confrontare
confrontarer.Add("C:\\Files\\target.docx");

// definire le opzioni di confronto
CompareOptions confrontareOptions = new CompareOptions();
confrontareOptions.CompareBookmarks = true; // confrontare bookmarks

// confrontare
confrontarer.Compare("C:\\Files\\result.docx", confrontareOptions);
Confronta i segnalibri nei documenti di Word usando C#

Confronta i segnalibri nei documenti di Word usando C#

La proprietà CompareBookmarks consente di confrontare i segnalibri disponibili nei documenti di origine e di destinazione.

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo hai imparato a confrontare due o più documenti di Word ed evidenziare le differenze usando C#. Hai anche imparato come ottenere l’elenco delle modifiche evidenziate. Inoltre, hai imparato a confrontare i segnalibri nei documenti di Word a livello di codice. Inoltre, hai imparato a confrontare documenti Word protetti da password utilizzando C#. Puoi saperne di più su GroupDocs.Comparison per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche