Documentos de processamento de texto são a maneira mais comum de redigir contratos, acordos, papéis e muitos outros documentos oficiais. Se você precisar comparar e mesclar dois documentos do Word, assim como a opção rastrear alterações do Microsoft Word, podemos fazer isso programaticamente em nossos aplicativos .NET. Neste artigo, discutiremos como comparar dois documentos do Word e destacar as diferenças identificadas usando C#. Além disso, veremos como comparar documentos protegidos por senha, aceitar e rejeitar alterações e comparar mais de dois documentos com exemplos de C#.

Compare documentos do Word para encontrar diferenças usando a API .NET

Os seguintes tópicos são discutidos aqui:

API .NET para comparar documentos do Word

GroupDocs.Comparison fornece uma API .NET que permite comparar e depois mesclar vários documentos de vários formatos de arquivo dentro do aplicativo .NET. Vou usar sua API .NET, ou seja, GroupDocs.Comparison for .NET para comparar documentos do Word.

Você pode baixar as DLLs ou o instalador MSI da seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Comparison

Comparar documentos do Word usando C#

Se você tiver duas versões de um documento, poderá comparar os documentos para encontrar suas diferenças (adições, exclusões) e criar um novo documento que mostre todas as alterações. A seguir estão as etapas para comparar dois documentos do Word e destacar as diferenças.

  • Carregue o primeiro documento do Word usando a classe Comparer.
  • Adicione o segundo arquivo ao Comparer usando o método Add().
  • Compare o resumo das alterações apenas chamando o método Compare().

O código C# a seguir mostra como comparar documentos do Word e obter as alterações no documento resultante.

/*
 * Compare dois documentos do Word e destaque as alterações usando C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Aceitar ou rejeitar alterações identificadas de documentos do Word usando C#

Semelhante à opção rastrear alterações do MS Word, você pode aceitar ou rejeitar cada alteração identificada. A seguir estão as etapas para comparar e aceitar ou rejeitar as alterações identificadas nos documentos do Word.

  • Carregue o documento de origem e adicione o(s) documento(s) do Word de destino usando a classe Comparer.
  • Faça a comparação dos documentos carregados usando o método Compare().
  • Obtenha as alterações identificadas usando o método GetChanges().
  • Agora você pode percorrer as alterações e definir ComparisonAction de cada alteração.
    • Para cada alteração, você pode selecionar Aceitar ou Rejeitar.
  • Quando terminar as alterações, chame o método ApplyChanges() para obter o documento resultante com as alterações aplicadas.

O código-fonte C# a seguir compara dois documentos do Word, aceita uma alteração identificada e rejeita outra.

/*
 * Aceite e rejeite as alterações identificadas comparando documentos do Word usando C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Rejeitando a primeira alteração identificada e ela não será adicionada ao documento de resultado
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

Compare mais de dois documentos usando C#

Da mesma forma, mais de dois documentos podem ser comparados de uma só vez. A seguir estão as etapas para comparar vários documentos do Word quanto a diferenças e destacar as alterações identificadas.

  • Carregue o primeiro documento do Word usando a classe Comparer.
  • Continue adicionando os outros documentos ao Comparer usando o método Add().
  • Chame o método Compare() para obter as alterações e o resumo das alterações.

O código C# a seguir mostra como comparar mais de dois documentos do Word e obter as alterações no documento resultante.

/*
 * Comparar vários documentos do Word usando C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

Comparar documentos do Word protegidos por senha usando C#

Se seus documentos estiverem protegidos por senha, basta fornecer a senha ao carregar os documentos. As etapas a seguir mostram como podemos comparar o conteúdo de documentos protegidos por senha usando C#.

  • Prepare as opções de carregamento para documentos de origem e destino, fornecendo a senha.
  • Carregue o documento de origem usando a classe Comparer.
  • Adicione o documento de destino ao Comparer usando as opções de carregamento preparadas.
  • Obtenha o resumo das diferenças chamando o método Compare().

O exemplo de código C# a seguir compara dois arquivos do Word protegidos por senha e gera o documento resultante que destaca as diferenças.

/*
 * Comparar documentos do Word protegidos por senha usando C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para concluir, aprendemos a comparar dois ou mais documentos do Word usando C#. Além disso, após destacar as diferenças, aprendemos a aceitar e rejeitar programaticamente as mudanças identificadas. No final, também discutimos como podemos comparar os documentos do Word protegidos por senha dentro dos aplicativos .NET.

Existem muitas outras personalizações para controlar os resultados da comparação, como definir a sensibilidade da comparação, mostrar apenas a página de resumo, ignorar lacunas e muito mais. Saiba mais sobre GroupDocs.Comparison for .NET. Visite sua documentação para começar a criar seus próprios aplicativos de comparação de documentos para vários formatos de documento suportados. Para dúvidas, entre em contato conosco através do fórum.

Veja também