Já discutimos a comparação de dois documentos do Word, mesmo que fossem protegidos por senha. E se houver mais de dois arquivos para comparação? Neste artigo, veremos como comparar vários documentos do Word em Java. Além disso, aprenderemos como aceitar ou rejeitar cada uma das alterações identificadas para obter a saída desejada.

Compare vários documentos do Word para encontrar diferenças em Java

A recente série curta de artigos já cobriu a maneira Java de como:

Ao final deste artigo, você também terá uma boa compreensão de como:

Se o seu ambiente de desenvolvimento ainda não estiver pronto para realizar a comparação, vamos prepará-lo rapidamente.

Biblioteca Java para comparar dois ou mais documentos do Word – Configuração

Espero que você esteja familiarizado com a API Java de comparação de documentos até agora. Estarei usando o mesmo GroupDocs.Comparison para seguir em frente. Você pode baixar ou verificar rapidamente o ambiente de desenvolvimento de seus aplicativos baseados em maven usando as seguintes configurações:

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>22.3</version> 
</dependency>

Agora vamos pular para o objetivo e começar comparando vários arquivos do Word.

Compare mais de dois arquivos do Word em Java

Comparar vários arquivos não é tão diferente de comparar apenas dois arquivos. Basta continuar adicionando mais arquivos ao Comparador e, finalmente, clicar em comparar como você faz ao comparar dois arquivos. A seguir estão as etapas para comparar mais de dois documentos do Word em Java para identificar as alterações e destacar as diferenças encontradas.

  • Carregue o primeiro arquivo DOC/DOCX usando a classe Comparer.
  • Adicione o segundo arquivo ao Comparer usando o método add().
  • Continue adicionando mais documentos ao Comparador usando os métodos add() iguais/semelhantes.
  • Chame o método compare para realizar a comparação e obter o resumo das alterações identificadas.

O exemplo a seguir mostra como comparar vários arquivos do Word em Java e obter as alterações no documento resultante.

/*
 * Comparar vários documentos do Word
 */
try (Comparer comparer = new Comparer("path/document-1.docx")) {
    comparer.add("path/document-2.docx");
    comparer.add("path/document-3.docx");
    final Path resultPath = comparer.compare("path/compared-result.docx");
}

Aceitar ou rejeitar alterações identificadas em arquivos do Word usando Java

Tenho certeza de que você está familiarizado com o recurso de controle de alterações do Microsoft Word. Semelhante a isso, você pode aceitar ou rejeitar programaticamente cada uma das alterações identificadas para o documento de saída final. As etapas a seguir mostram como você pode comparar e aceitar ou rejeitar as alterações identificadas nos arquivos DOC/DOCX de documentos do Word.

  • Carregue o documento DOC/DOCX de origem usando a classe Comparer.
  • Adicione o segundo documento do Word ao Comparador usando o método add().
  • Compare os arquivos carregados usando o método compare().
  • Busque a coleção de diferenças identificadas usando o método getChanges().
  • Agora percorra as alterações, analise e, em seguida, você pode definir a ComparisonAction de cada alteração de acordo.
    • Defina-o como Aceitar para concordar com a alteração.
    • Defina-o como Rejeitar para negar a alteração.
  • Chame o método applyChanges() para obter o documento modificado com as alterações adotadas.

O trecho de código Java a seguir compara dois documentos DOCX e mostra como aceitar e rejeitar as alterações identificadas.

/*
 * Comparar documentos do Word - Aceitar ou rejeitar alterações em Java
 */
try (Comparer comparer = new Comparer("path/document-1.docx")) {
    comparer.add("path/document-2.docx");
    
    final Path resultPath = comparer.compare("path/compared-result.docx");
    ChangeInfo[] changes = comparer.getChanges();

    changes[0].setComparisonAction(ComparisonAction.REJECT);
    changes[1].setComparisonAction(ComparisonAction.ACCEPT);
    comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

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 para comparar vários documentos do Word.

Crie seu próprio aplicativo de comparação

Aqui estão alguns links importantes que o ajudarão a construir seu próprio aplicativo de comparação de documentos.

Características | Documentation | API Reference | Running Examples – Source Code | Support | Release Notes

Veja também