La comparación de documentos de MS Word se realiza para conocer la diferencia entre dos versiones de un documento. MS Word proporciona una opción integrada para comparar el contenido de dos documentos. Sin embargo, con el aumento del número de documentos, resulta difícil realizar la comparación de documentos manualmente. Para automatizar este proceso, este artículo cubre cómo comparar dos documentos de MS Word (DOC/DOCX) usando Java.
- API de comparación de documentos de MS Word para Java
- Compara documentos de MS Word usando Java
- Ignorar el formato en la comparación de documentos de MS Word
- Establecer documento de destino para diferencias de comparación
- Establecer granularidad para comparar documentos de MS Word
API de Java para comparar documentos de MS Word
Aspose.Words for Java es una potente API de manipulación de documentos que le permite crear, leer, modificar y convertir documentos de MS Word. Además, le permite comparar dos documentos de Word y considerar o ignorar el formato del contenido. Puede descargar la API o instalarla usando las configuraciones de 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>
Compara documentos de MS Word usando Java
Los siguientes son los pasos para realizar una comparación simple de documentos de Word utilizando Aspose.Words for Java API.
- Cargue los documentos a comparar utilizando la clase Document.
- Llame al método Document.compare(Document, String, Date) para comparar el documento con el pasado como argumento.
El siguiente ejemplo de código muestra cómo comparar dos documentos de 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
Comparación de documentos de Java Word - Ignorar formato
Puede darse el caso de que los documentos tengan un formato diferente aplicado al contenido. En tales casos, preferiría comparar el texto solo ignorando el formato, encabezados/pies de página, notas al pie, tablas, comentarios, etc. Los siguientes son los pasos para ignorar el formato del documento al comparar dos documentos de MS Word.
- Cargue los documentos a comparar utilizando la clase Document.
- Cree un objeto de la clase CompareOptions.
- Establezca CompareOptions.setIgnoreFormatting(true).
- Compare los documentos usando el método Document.compare(Document, String, Date, CompareOptions).
El siguiente ejemplo de código muestra cómo comparar documentos de MS Word ignorando el formato del contenido usando Java.
// Para obtener ejemplos completos y archivos de datos, vaya a 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 ahora contiene cambios como revisiones.
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");
Establecer documento de Word de destino para diferencias de comparación
Aspose.Words for Java también le permite especificar el documento fuente de Word durante la comparación. Para esto, puede usar la propiedad CompareOptions.setTarget() que se relaciona con la opción “Mostrar cambios en” de MS Word. El siguiente ejemplo de código muestra cómo especificar el documento de destino en la comparación.
Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Se relaciona con la opción "Mostrar cambios en" de Microsoft Word en el cuadro de diálogo "Comparar documentos".
options.setTarget(ComparisonTargetType.NEW);
docA.compare(docB, "user", new Date(), options);
Establecer granularidad para comparar archivos de Word en Java
También puede establecer la granularidad de los cambios al comparar dos documentos de MS Word. Esto se puede hacer usando la propiedad CompareOptions.setGranularity(). Las siguientes son las posibles opciones de granularidad.
El siguiente ejemplo de código muestra cómo configurar la granularidad al comparar documentos de 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);
Conclusión
En este artículo, ha visto cómo comparar dos documentos de MS Word en varios escenarios utilizando Java. Puede explorar más sobre Aspose.Words for Java utilizando la documentación.
Prueba gratis
Aspose ofrece una licencia temporal para que pruebe sus API de forma gratuita. Puede obtener el suyo para evaluar Aspose.Words for Java.