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
- Comparar documentos do Word usando Java
- Obter texto das alterações usando Java
- Comparar marcadores em documentos do Word
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:
- Crie uma instância da classe Comparer
- Forneça o caminho do arquivo DOCX de origem para o construtor
- Adicionar arquivo DOCX de destino à comparação
- 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");
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:
- Crie uma instância da classe Comparer
- Forneça o caminho do arquivo DOCX de origem para o construtor
- Adicionar arquivo DOCX de destino à comparação
- Chame o método Compare()
- Chame o método getChanges() e obtenha os detalhes das alterações
- 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[
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:
- Crie uma instância da classe Comparer
- Forneça o caminho do arquivo DOCX de origem para o construtor
- Adicionar arquivo DOCX de destino à comparação
- Crie uma instância de CompareOptions
- Defina o CompareBookmarks como verdadeiro
- 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);
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.