Introdução

Seja você quem trabalha com contratos, políticas internas, especificações técnicas ou cópias de marketing, o padrão é o mesmo: você rapidamente acumula diversas versões .docx e, em algum momento, precisa ver exatamente o que mudou entre elas. O diálogo Comparar embutido no Word serve para uma verificação manual ocasional, mas não ajuda muito quando a comparação passa a fazer parte de um processo regular ou precisa ser automatizada no lado do servidor.

GroupDocs.Comparison for .NET permite executar essa comparação a partir do código e produzir o resultado no formato que seus revisores preferem. A biblioteca oferece dois modos de saída para documentos Word:

  1. Modo de revisão — as diferenças são gravadas como marcação de revisão (controle de alterações) do Word. Os revisores abrem o arquivo, veem os familiares controles Revisão → Aceitar / Rejeitar e trabalham nas mudanças uma a uma.
  2. Modo de destaque — textos inseridos, excluídos e modificados são renderizados com realces coloridos diretamente no corpo do documento, de modo que as diferenças ficam visíveis de relance enquanto você lê o texto final.

Neste artigo percorreremos ambas as abordagens com exemplos funcionais em C#, exploraremos a classe WordCompareOptions e suas propriedades, e discutiremos quando cada modo faz mais sentido.

Pré‑requisitos

Antes de começar:

  • .NET 6.0 ou superior.
  • GroupDocs.Comparison for .NET — instale via NuGet:
dotnet add package GroupDocs.Comparison
  • Um arquivo de licença (GroupDocs.Comparison.lic). Sem ele a biblioteca funciona em modo de avaliação com marcas d’água e limites de tamanho. Você pode solicitar uma licença temporária para testes.
  • Dois arquivos Word para comparar — chamaremos eles de source.docx e target.docx. Exemplo de conteúdo:
source.docx target.docx

Método 1: Comparação com Controle de Alterações

Quando usar: os revisores precisam aceitar ou rejeitar cada mudança individualmente no Microsoft Word usando as ferramentas nativas Revisão → Aceitar / Rejeitar — por exemplo, durante negociações de contrato ou ciclos de aprovação de políticas.

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 resultante em modo de revisão (controle de alterações):

Comparison result in revision (track changes) mode

O que acontece nos bastidores:

  • ComparisonDisplayMode.Revisions indica ao motor que ele deve gerar a marcação nativa de controle de alterações do Word.
  • DetectStyleChanges = true faz com que a comparação capture diferenças de formatação (negrito, tamanho da fonte, cor) além das edições de texto.
  • O arquivo de saída abre no Microsoft Word com o painel Revisão pronto — cada inserção, exclusão e ajuste de estilo aparece listado e pode ser aceito ou rejeitado.

Como o modo de revisão não precisa re‑renderizar o conteúdo do documento — ele apenas anexa metadados de revisão — costuma ser o mais rápido dos dois modos.


Método 2: Comparação no Modo de Destaque

Quando usar: os interessados desejam um documento limpo que mostre claramente o que mudou, mas não se interessam em percorrer cada revisão individualmente. Um cenário típico é o de um gerente que abre a versão mais recente no Word e rapidamente examina as inserções e exclusões destacadas para entender o impacto da atualização.

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 resultante em modo de destaque:

Comparison result in highlight mode

O que acontece nos bastidores:

  • ComparisonDisplayMode.Highlight renderiza as diferenças como realces coloridos em linha — vermelho para exclusões, verde para inserções, azul para alterações de estilo (cores padrão que podem ser ajustadas através de WordCompareOptions / CompareOptions e seus respectivos StyleSettings).
  • O documento está pronto para leitura ou impressão sem etapas adicionais.
  • Nenhum metadado de controle de alterações é adicionado ao arquivo.

O modo de destaque faz mais trabalho internamente porque precisa modificar o conteúdo real do documento e aplicar a formatação. Para arquivos grandes você pode notar uma diferença de desempenho significativa em comparação ao modo de revisão.


Explorando WordCompareOptions

Ambos os exemplos acima utilizam WordCompareOptions — uma classe que herda configurações comuns de CompareOptions e adiciona propriedades específicas para documentos Word. Por meio desse tipo você controla o modo de exibição (DisplayMode), se deve rastrear mudanças de estilo (DetectStyleChanges), qual nome de autor aparece nas revisões (RevisionAuthorName), como quebras de linha, marcadores etc.

Além disso, a classe base CompareOptions expõe estilos para itens inseridos, excluídos e alterados (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), permitindo ajustar cores e formatação dos realces quando necessário.

Segue um pequeno exemplo de configuração de opções para uma verificação apenas de texto no modo de revisão:

var options = new WordCompareOptions
{
    DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
    DetectStyleChanges = false,
    RevisionAuthorName = "QA Bot",
    CompareBookmarks = true
};

Obtendo Alterações Programaticamente

Independente do modo de saída que você escolher (revisões ou destaque), é sempre possível obter uma lista estruturada das diferenças detectadas via API comum Comparer.GetChanges. Esse método funciona para Word e todos os demais formatos suportados.

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    comparer.Compare("result_revision.docx");

    var changes = comparer.GetChanges(); // returns ChangeInfo[]
}

Isso é útil quando você precisa pós‑processar as mudanças no seu próprio fluxo de trabalho — por exemplo, gerar um relatório HTML personalizado, alimentar diferenças em um sistema de revisão ou agregar estatísticas sobre edições. Consulte a referência oficial da API para mais detalhes: Comparer.GetChanges.


Trabalhando com Documentos Protegidos por Senha

Se os documentos estiverem protegidos por senha, ainda podem ser comparados: a senha é fornecida via LoadOptions ao criar o Comparer. Essa abordagem funciona da mesma forma para Word, PDF e outros formatos suportados.

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);
}

Obtenha uma Avaliação Gratuita

Você pode baixar o GroupDocs.Comparison for .NET na página oficial de releases. Para testes sem restrições, solicite uma licença temporária — sem necessidade de cartão de crédito.


Perguntas Frequentes

P: Preciso ter o Microsoft Word ou o Office instalado no servidor?
R: Não. GroupDocs.Comparison é uma biblioteca .NET autônoma; ela lê e grava arquivos DOCX por conta própria.

P: Posso comparar documentos em outros formatos além de Word?
R: Sim — a biblioteca suporta PDFs, planilhas Excel, apresentações, arquivos de texto puro e muitos outros. A lista completa está na documentação.

P: O que acontece se eu não definir uma licença?
R: A biblioteca funciona em modo de avaliação. Os documentos de saída conterão uma marca d’água e apenas as primeiras páginas serão processadas. Uma licença temporária remove essas restrições para fins de teste.

P: Posso personalizar as cores de destaque?
R: As cores padrão atendem à maioria dos casos de uso. Para controle avançado de estilo, verifique a propriedade StyleSettings em CompareOptions.


Conclusão

GroupDocs.Comparison for .NET oferece duas maneiras eficientes de comparar documentos Word a partir do código. O modo de revisão se integra diretamente ao fluxo de revisão que sua equipe já utiliza; o modo de destaque fornece um resumo visual imediato para quem só precisa ver as mudanças. A classe WordCompareOptions permite afinar a saída — desde detecção de estilo e atribuição de autor até comparação de marcadores e propriedades do documento.

Escolha o modo que melhor se adapta ao seu cenário, ou gere ambos e deixe cada público escolher a visualização preferida.

Recursos Adicionais