
O GroupDocs.Comparison for .NET é uma biblioteca C# que permite comparar documentos e encontrar diferenças. Compare e mescle Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML e muitos outros documentos, recupere uma lista de alterações entre documentos de origem e de destino, aplique ou rejeite alterações e salve resultados com GroupDocs .API de comparação. Além disso, GroupDocs.Comparison pode identificar alterações de estilo e formatação - como negrito, itálico, sublinhados, tachados, tipos de fonte, etc.
Os algoritmos de detecção de alterações usados pelo GroupDocs.Comparison permitem detectar diferenças em diferentes partes e blocos do documento:
- Blocos de texto - parágrafos, palavras e caracteres;
- Tabelas;
- Imagens;
- Formas etc
Aqui estão etapas simples para comparar dois arquivos de texto e mostrar as diferenças:
- Instanciar o objeto Comparer com o caminho ou fluxo do documento de origem;
- Chame o método Add e especifique o caminho ou fluxo do documento de destino;
- Chame o método Compare.
O trecho de código a seguir demonstra o caso mais simples de comparação de documentos usando algumas linhas de código.
Comparar documentos do arquivo local
using (Comparer comparer = new Comparer(“source.docx”))
{
comparer.Add(“target.docx”);
comparer.Compare(“result.docx”);
}
Comparar documentos do stream
using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
comparer.Add(File.OpenRead(“target.docx”));
comparer.Compare(File.Create(“result.docx”));
}
Digamos que você tenha dois contratos no formato DOCX que foram celebrados em anos diferentes. Se você usar o código acima para comparar esses contratos, obterá um arquivo DOCX onde os elementos excluídos são marcados em vermelho, os adicionados em azul e os modificados em verde, conforme mostrado abaixo:

Aceitar ou Rejeitar as diferenças detectadas
GroupDocs.Comparison fornece a capacidade de aplicar ou descartar alterações específicas entre documentos de origem e de destino e salvar o documento resultante com (ou sem) alterações selecionadas.
A seguir estão as etapas para aplicar/rejeitar alterações no documento resultante.
- Instanciar o objeto Comparer com o caminho ou fluxo do documento de origem;
- Chame o método Add e especifique o caminho do documento de destino ou fluxo;
- Chama o método Compare;
- Chama o método GetChanges e obtém a lista de alterações detectadas;
- Defina ComparisonAction do objeto de alteração necessário para o valor ComparisonAction.Accept ou ComparisonAction.Reject;
- Chame o método ApplyChanges e passe a coleção de alterações para ele.
O exemplo de código a seguir mostra como aceitar/rejeitar as diferenças detectadas.
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 });
}
Gerar visualização de páginas do documento
GroupDocs.Comparison permite gerar visualizações de página para documentos de origem, destino e resultante(s) usando o método GeneratePreview de uma classe Document.
A classe PreviewOptions é usada para gerenciar o processo de geração de visualização - especifique os números de página desejados, o formato da imagem etc.
A seguir estão as etapas para gerar uma visualização de documento com a API GroupDocs.Comparison:
- Crie uma nova instância da classe Comparer e passe o caminho do documento de origem como um parâmetro do construtor;
- Adicione o(s) documento(s) de destino à comparação usando o método Add;
- As propriedades Source e Targets do objeto Comparer permitem acessar documentos de origem e destino e fornecem o método GeneratePreview;
- Instancie o objeto PreviewOptions com:
- delegado para cada criação de fluxo de página (consulte o manipulador de eventos CreatePageStream);
- formato de visualização da imagem - PNG / JPG / BMP;
- números de página a serem processados;
- tamanho personalizado das imagens de visualização (se necessário).
- Chame o método GeneratePreview do documento Source e Targets e passe PreviewOptions para ele.
Obtenha visualizações de página para o documento resultante
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);
}
Comparar vários documentos
GroupDocs.Comparison permite comparar mais de dois documentos. O exemplo de código a seguir mostra como comparar vários documentos programaticamente.
using (Comparer comparer = new Comparer(“source.docx”)
{
comparer.Add(“target1.docx”);
comparer.Add(“target2.docx”);
comparer.Add(“target3.docx”);
comparer.Compare(“result.docx”);
}
Instalação
NuGet é a maneira mais fácil de baixar e instalar GroupDocs.Comparison for .NET. Por favor obtenha uma licença temporária para testar a biblioteca sem quaisquer restrições funcionais.
Verifique a documentação para saber mais sobre a biblioteca. Também oferecemos suporte técnico gratuito, portanto, sinta-se à vontade para contatar-nos - teremos prazer em ajudar.