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:
- 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.
- 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.docxetarget.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):
O que acontece nos bastidores:
ComparisonDisplayMode.Revisionsindica ao motor que ele deve gerar a marcação nativa de controle de alterações do Word.DetectStyleChanges = truefaz 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:
O que acontece nos bastidores:
ComparisonDisplayMode.Highlightrenderiza 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 deWordCompareOptions/CompareOptionse seus respectivosStyleSettings).- 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.