A comparação de documentos do MS Word é realizada para saber a diferença entre duas versões de um documento. O MS Word oferece uma opção integrada para comparar o conteúdo de dois documentos. No entanto, com o aumento do número de documentos, torna-se difícil realizar a comparação de documentos manualmente. Para automatizar esse processo, este artigo aborda como comparar dois documentos do MS Word (DOC/DOCX) usando Java.
- API de comparação de documentos do MS Word para Java
- Compare documentos do MS Word usando Java
- Ignorar formatação na comparação de documentos do MS Word
- Definir documento de destino para diferenças de comparação
- Definir granularidade para comparar documentos do MS Word
API Java para comparar documentos do MS Word
Aspose.Words for Java é uma poderosa API de manipulação de documentos que permite criar, ler, modificar e converter documentos do MS Word. Além disso, permite comparar dois documentos do Word, além de considerar ou ignorar a formatação do conteúdo. Você pode baixar a API ou instalá-la usando as configurações do Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
Compare documentos do MS Word usando Java
A seguir estão as etapas para executar uma comparação simples de documento do Word usando a API Aspose.Words para Java.
- Carregue os documentos a serem comparados usando a classe Document.
- Chame o método Document.compare(Document, String, Date) para comparar o documento com o passado como argumento.
O exemplo de código a seguir mostra como comparar dois documentos do MS Word usando Java.
Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions
Comparação de documentos Java Word - Ignorar formatação
Pode ser o caso quando os documentos têm formatação diferente aplicada ao conteúdo. Nesses casos, você preferiria comparar o texto apenas ignorando a formatação, cabeçalhos/rodapés, notas de rodapé, tabelas, comentários, etc. A seguir estão as etapas para ignorar a formatação do documento ao comparar dois documentos do MS Word.
- Carregue os documentos a serem comparados usando a classe Document.
- Crie um objeto da classe CompareOptions.
- Defina CompareOptions.setIgnoreFormatting(true).
- Compare os documentos usando o método Document.compare(Document, String, Date, CompareOptions).
O exemplo de código a seguir mostra como comparar documentos do MS Word ignorando a formatação do conteúdo usando Java.
// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);
com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");
com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);
// DocA agora contém alterações como revisões.
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
System.out.println("Documents are equal");
else
System.out.println("Documents are not equal");
Definir documento do Word de destino para diferenças de comparação
Aspose.Words para Java também permite que você especifique o documento do Word de origem durante a comparação. Para isso, você pode usar a propriedade CompareOptions.setTarget() que se relaciona com a opção “Mostrar alterações em” do MS Word. O exemplo de código a seguir mostra como especificar o documento de destino na comparação.
Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Relaciona-se com a opção "Mostrar alterações em" do Microsoft Word na caixa de diálogo "Comparar documentos".
options.setTarget(ComparisonTargetType.NEW);
docA.compare(docB, "user", new Date(), options);
Definir granularidade para comparar arquivos do Word em Java
Você também pode definir a granularidade das alterações ao comparar dois documentos do MS Word. Isso pode ser feito usando a propriedade CompareOptions.setGranularity(). A seguir estão as opções de granularidade possíveis.
O exemplo de código a seguir mostra como definir a granularidade ao comparar documentos do MS Word usando Java.
DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());
builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");
CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);
builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);
Conclusão
Neste artigo, você viu como comparar dois documentos do MS Word em vários cenários usando Java. Você pode explorar mais sobre o Aspose.Words para Java usando a documentação.
Experimentar gratuitamente
A Aspose oferece uma licença temporária para você experimentar suas APIs gratuitamente. Você pode obter o seu para avaliar o Aspose.Words for Java.