GroupDocs.Comparison for .NET è una libreria C# che consente di confrontare documenti e trovare differenze. Confronta e unisci Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML e molti altri documenti, recupera un elenco di modifiche tra i documenti di origine e di destinazione, applica o rifiuta le modifiche e salva i risultati con GroupDocs .API di confronto. Oltre a ciò, GroupDocs.Comparison può identificare modifiche di stile e formattazione, come grassetto, corsivo, sottolineato, barrato, tipi di carattere, ecc.

Gli algoritmi di rilevamento delle modifiche utilizzati da GroupDocs.Comparison consentono di rilevare le differenze in diverse parti e blocchi del documento:

  • Blocchi di testo - paragrafi, parole e caratteri;
  • Tabelle;
  • Immagini;
  • Forme ecc.

Ecco alcuni semplici passaggi per confrontare due file di testo e mostrare le differenze:

  • Istanziare l’oggetto Comparatore con il percorso o il flusso del documento di origine;
  • Chiama il metodo Add e specifica il percorso o lo stream del documento di destinazione;
  • Chiama il metodo Confronta.

Il frammento di codice seguente illustra il caso più semplice di confronto di documenti utilizzando un paio di righe di codice.

Confronta i documenti dal file locale

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
}

Confronta i documenti dallo stream

using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
    comparer.Add(File.OpenRead(“target.docx”));
    comparer.Compare(File.Create(“result.docx”));
}

Diciamo che hai due contratti in formato DOCX che sono stati conclusi in anni diversi. Se utilizzi il codice sopra per confrontare questi contratti, ottieni un file DOCX in cui gli elementi eliminati sono contrassegnati in rosso, quelli aggiunti in blu e quelli modificati in verde come mostrato di seguito:

Accetta o rifiuta le differenze rilevate

GroupDocs.Confronto offre la possibilità di applicare o eliminare modifiche specifiche tra i documenti di origine e di destinazione e di salvare il documento risultante con (o senza) le modifiche selezionate.

Di seguito sono riportati i passaggi per applicare/rifiutare le modifiche al documento risultante.

L’esempio di codice seguente mostra come accettare/rifiutare le differenze rilevate.

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes });
}

Genera l’anteprima delle pagine del documento

GroupDocs.Comparison consente di generare anteprime di pagina per i documenti di origine, destinazione e risultanti utilizzando il metodo GeneratePreview di una classe Document.

La classe PreviewOptions viene utilizzata per gestire il processo di generazione dell’anteprima: specificare i numeri di pagina desiderati, il formato dell’immagine ecc.

Di seguito sono riportati i passaggi per generare un’anteprima del documento con l’API GroupDocs.Comparison:

  • Crea una nuova istanza della classe Comparer e passa il percorso del documento di origine come parametro del costruttore;
  • Aggiungi i documenti di destinazione al confronto utilizzando il metodo Aggiungi;
  • Le proprietà Source e Targets dell’oggetto Comparer consentono di accedere ai documenti di origine e di destinazione e forniscono il metodo GeneratePreview;
  • Crea un’istanza dell’oggetto PreviewOptions con:
    • delegato per ogni creazione del flusso di pagine (vedi gestore di eventi CreatePageStream);
    • formato di anteprima dell’immagine - PNG / JPG / BMP;
    • numeri di pagina da elaborare;
    • dimensione personalizzata delle immagini di anteprima (se necessario).
  • Chiama il metodo GeneratePreview del documento Source e Targets e passagli PreviewOptions.

Ottieni anteprime di pagina per il documento risultante

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
    Document document = new Document(File.OpenRead(“result.docx”));
    PreviewOptions previewOptions = new PreviewOptions(pageNumber =>
    {
        var pagePath = Path.Combine(“C:\\”, $"result\_{pageNumber}.png");
        return File.Create(pagePath);
    });
    previewOptions.PreviewFormat = PreviewFormats.PNG;
    previewOptions.PageNumbers = new int[] { 1, 2 };
    document.GeneratePreview(previewOptions);
}

Confronta più documenti

GroupDocs.Comparison consente di confrontare più di due documenti. Nell’esempio di codice seguente viene illustrato come confrontare più documenti a livello di codice.

using (Comparer comparer = new Comparer(“source.docx”)
{
    comparer.Add(“target1.docx”);
    comparer.Add(“target2.docx”);
    comparer.Add(“target3.docx”);
    comparer.Compare(“result.docx”);
}

Installazione

NuGet è il modo più semplice per scaricare e installare GroupDocs.Comparison per .NET. Si prega di ottenere una licenza temporanea per testare la libreria senza alcuna restrizione funzionale.

Si prega di controllare la documentazione per saperne di più sulla biblioteca. Offriamo anche supporto tecnico gratuito, quindi non esitare a contattarci - saremo felici di aiutarti.