Introdução

Seja você quem trabalha com contratos, políticas internas, especificações técnicas ou textos de marketing, o padrão é o mesmo: você vai acumulando rapidamente várias versões .docx e em algum momento precisa ver exatamente o que mudou entre elas. O diálogo Compare nativo do 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 servidor.

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

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

Neste artigo percorreremos ambas as abordagens com exemplos práticos 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 marca 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 Revisões

Quando usar: os revisores precisam aceitar ou rejeitar cada mudança individualmente no Microsoft Word usando as ferramentas nativas Review → Accept / Reject — 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 (track changes):

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 detecte diferenças de formatação (negrito, tamanho de fonte, cor) além das edições de texto.
  • O arquivo de saída abre no Microsoft Word com o painel Review pronto — todas as inserções, exclusões e ajustes de estilo são listados e podem ser aceitos ou rejeitados.

Como o modo de revisão não precisa re‑renderizar o conteúdo do documento — ele simplesmente 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: as partes interessadas desejam um documento limpo que mostre claramente o que mudou, mas não precisam percorrer cada revisão individualmente. Um cenário típico é um gestor que abre a última versão no Word e rapidamente verifica 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 de cor embutidos — vermelho para exclusões, verde para inserções, azul para mudanças 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 realiza mais trabalho internamente porque precisa modificar o conteúdo real do documento e aplicar formatação. Em 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 as alterações de estilo são rastreadas (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 modificados (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), permitindo ajustar cores e formatação dos realces quando necessário.

A seguir, 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

Independentemente do modo de saída que você escolher (revisões ou destaque), você pode sempre obter uma lista estruturada das diferenças detectadas via a 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 alterações no seu próprio fluxo de trabalho — por exemplo, gerar um relatório HTML customizado, enviar as diferenças para um sistema de revisão ou agregar estatísticas sobre as edições. Veja 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 é passada 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 um Teste Gratuito

Você pode baixar o GroupDocs.Comparison for .NET na página oficial de lançamentos. 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 instalados no servidor?
R: Não. O GroupDocs.Comparison é uma biblioteca .NET independente; ele lê e grava arquivos DOCX por conta própria.

P: Posso comparar documentos em outros formatos além do Word?
R: Sim — a biblioteca suporta PDFs, planilhas Excel, apresentações, arquivos de texto simples 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 somente as primeiras páginas serão processadas. Uma licença temporária remove essas restrições para testes.

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


Conclusão

O GroupDocs.Comparison for .NET oferece duas maneiras eficientes de comparar documentos Word a partir do código. O modo de revisão integra-se diretamente ao fluxo de revisão que sua equipe já usa; 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