Compare documentos do Word e destaque as diferenças usando Java

Você pode comparar facilmente dois ou mais documentos do Word e destacar as diferenças de forma programática. Você pode precisar comparar várias versões do mesmo arquivo do Word ou arquivos diferentes para as diferenças e semelhanças em seu aplicativo Java. Neste artigo, você aprenderá a comparar dois ou mais documentos do Word e destacar as diferenças usando Java.

Os seguintes tópicos são discutidos/abordados neste artigo:

API Java para comparar documentos do Word

Usarei GroupDocs.Comparison for Java API para comparar os documentos DOCX. Ele compara para detectar alterações de conteúdo de palavras, parágrafos e caracteres, enquanto fornece um documento de comparação que lista um resumo das diferenças. Também permite detectar alterações e diferenças no estilo de texto entre formatos de documentos semelhantes. A API suporta a comparação de todos os formatos de documentos padrão do setor, como PDF, HTML, Word, Excel, PowerPoint, e-mails do Outlook, diagramas do Visio, OpenDocument, AutoCAD e imagens.

Você pode baixar o JAR da API ou simplesmente adicionar a seguinte configuração pom.xml em seu aplicativo Java baseado em Maven para experimentar os exemplos de código mencionados abaixo.

<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>21.6</version> 
</dependency>

Comparar documentos do Word usando Java

Você pode comparar dois ou mais documentos do Word seguindo as etapas simples abaixo:

  1. Crie uma instância da classe Comparer
  2. Forneça o caminho do arquivo DOCX de origem para o construtor
  3. Adicionar arquivo DOCX de destino à comparação
  4. Chame o método Compare() junto com o caminho do arquivo de saída

O exemplo de código a seguir mostra como comparar documentos do Word e destaca as diferenças usando Java.

// inicializar comparador
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// adicionar arquivo de destino
comparer.add("C:\\Files\\target.docx");

// comparar e salvar comparar resultados
comparer.compare("C:\\Files\\result.docx");
Documentos do Word de origem e destino

Documentos de origem e destino

Compare dois documentos do Word usando Java

Compare dois documentos do Word usando Java

O documento resultante também inclui uma página de resumo no final do documento. Ele mostra o resumo de todas as alterações.

A classe Comparer é a classe principal que controla o processo de comparação de documentos. O método Compare() dessa classe compara os documentos de origem e destino. Este método salva os resultados no caminho do arquivo fornecido como parâmetro de entrada. O método Add() desta classe adiciona um arquivo ao processo de comparação. Você pode facilmente adicionar vários arquivos à comparação usando o método Add() conforme mostrado abaixo:

comparer.Add("target2.docx");
comparer.Add("target3.docx");

Obter texto das alterações usando Java

Você pode obter o texto das alterações programaticamente seguindo as etapas simples fornecidas abaixo:

  1. Crie uma instância da classe Comparer
  2. Forneça o caminho do arquivo DOCX de origem para o construtor
  3. Adicionar arquivo DOCX de destino à comparação
  4. Chame o método Compare()
  5. Chame o método getChanges() e obtenha os detalhes das alterações
  6. Mostrar as alterações

A amostra de código a seguir mostra como obter o texto das alterações usando Java.

// inicializar comparador
Comparer compararr = new Comparer("C:\\Files\\source.docx");

// adicionar arquivo de destino
compararr.add("C:\\Files\\target.docx");

// comparar
final Path resultPath = compararr.comparar();

// obter alterações
ChangeInfo[] changes = compararr.getChanges();
System.out.println("Count of changes: " + changes.length);

for (ChangeInfo change : changes) {
    System.out.printf("Change Type: %d, Text: %s%n", change.getType(), change.getText());
}
Count of changes: 10
Change Type: 2, Text: 
Change Type: 2, Text:  Company  HYPERLINK "http://www.aspose.com/" Aspose Pty Ltd Division GroupDocs 
Change Type: 2, Text: 
Change Type: 2, Text: Cool 
Change Type: 3, Text: test 
Change Type: 2, Text:  
Change Type: 2, Text: signatures
Change Type: 2, Text: Our 
Change Type: 2, Text: char&#091;
Change Type: 2, Text: 255] 

Você pode obter uma lista de alterações entre os arquivos de origem e de destino chamando o método getChanges() da classe Comparer. Ele retorna uma lista de objetos ChangeInfo. A classe ChangeInfo fornece métodos para obter detalhes das alterações, como getText() para obter o texto de uma alteração específica.

Comparar marcadores em documentos do Word

Você pode comparar marcadores presentes em documentos do Word programaticamente seguindo as etapas simples abaixo:

  1. Crie uma instância da classe Comparer
  2. Forneça o caminho do arquivo DOCX de origem para o construtor
  3. Adicionar arquivo DOCX de destino à comparação
  4. Crie uma instância de CompareOptions
  5. Defina o CompareBookmarks como verdadeiro
  6. Chame o método Compare() junto com o caminho do arquivo de saída e o objeto CompareOptions

O exemplo de código a seguir mostra como comparar indicadores em documentos do Word usando Java.

// inicializar comparador
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// adicionar arquivo de destino
comparer.add("C:\\Files\\target.docx");

// definir opções de comparação
CompareOptions compareOptions = new CompareOptions();
compareOptions.setCompareBookmarks(true);

// comparar e salvar comparar resultados
comparer.compare("C:\\Files\\result.docx", compareOptions);
Comparar marcadores em documentos do Word usando Java

Comparar marcadores em documentos do Word usando Java

Você pode aprimorar seu processo de comparação aplicando várias opções de comparação. Para isso, a classe CompareOptions permite definir diferentes opções de comparação fornecendo vários métodos. O método setCompareBookmarks() permite comparar os marcadores disponíveis nos documentos de origem e destino.

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como comparar dois ou mais documentos do Word e destacar as diferenças usando Java. Você também aprendeu como obter o texto das alterações destacadas. Além disso, você aprendeu a comparar marcadores em documentos do Word programaticamente. Você pode aprender mais sobre GroupDocs.Comparison for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também