Compare documentos de Word y resalte las diferencias usando Java

Puede comparar fácilmente dos o más documentos de Word y resaltar las diferencias mediante programación. Es posible que deba comparar varias versiones del mismo archivo de Word o diferentes archivos para ver las diferencias y similitudes en su aplicación Java. En este artículo, aprenderá cómo comparar dos o más documentos de Word y resaltar las diferencias usando Java.

Los siguientes temas se discuten/tratan en este artículo:

API de Java para comparar documentos de Word

Usaré GroupDocs.Comparison for Java API para comparar los documentos DOCX. Compara para detectar cambios de contenido en palabras, párrafos y caracteres, al mismo tiempo que proporciona un documento de comparación que enumera un resumen de las diferencias. También le permite detectar cambios y diferencias en el estilo de texto entre formatos de documentos similares. La API admite la comparación de todos los formatos de documentos estándar de la industria, como PDF, HTML, Word, Excel, PowerPoint, correos electrónicos de Outlook, diagramas de Visio, OpenDocument, AutoCAD e imágenes.

Puede descargar el JAR de la API o simplemente agregar la siguiente configuración pom.xml en su aplicación Java basada en Maven para probar los ejemplos de código mencionados a continuación.

<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>

Compara documentos de Word usando Java

Puede comparar dos o más documentos de Word siguiendo los sencillos pasos que se indican a continuación:

  1. Crear una instancia de la clase Comparador
  2. Proporcione la ruta del archivo DOCX de origen al constructor
  3. Agregar archivo DOCX de destino a la comparación
  4. Llame al método Compare() junto con la ruta del archivo de salida

El siguiente ejemplo de código muestra cómo comparar documentos de Word y destaca las diferencias con Java.

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

// añadir archivo de destino
comparer.add("C:\\Files\\target.docx");

// comparar y guardar comparar resultados
comparer.compare("C:\\Files\\result.docx");
Documentos de Word de origen y de destino

Documentos de origen y de destino

Compara dos documentos de Word usando Java

Compara dos documentos de Word usando Java

El documento resultante también incluye una página de resumen al final del documento. Muestra el resumen de todos los cambios.

La clase Comparador es la clase principal que controla el proceso de comparación de documentos. El método Compare() de esta clase compara los documentos de origen y de destino. Este método guarda los resultados en la ruta del archivo proporcionada como parámetro de entrada. El método Add() de esta clase agrega un archivo al proceso de comparación. Puede agregar fácilmente varios archivos a la comparación utilizando el método Add() como se muestra a continuación:

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

Obtener Texto de los Cambios usando Java

Puede obtener el texto de los cambios mediante programación siguiendo los sencillos pasos que se indican a continuación:

  1. Crear una instancia de la clase Comparador
  2. Proporcione la ruta del archivo DOCX de origen al constructor
  3. Agregar archivo DOCX de destino a la comparación
  4. Llame al método Comparar()
  5. Llame al método getChanges() y obtenga los detalles de los cambios
  6. Mostrar los cambios

El siguiente ejemplo de código muestra cómo obtener el texto de los cambios mediante Java.

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

// añadir archivo de destino
compararr.add("C:\\Files\\target.docx");

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

// obtener cambios
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] 

Puede obtener una lista de cambios entre los archivos de origen y de destino llamando al método getChanges() de la clase Comparer. Devuelve una lista de objetos ChangeInfo. La clase ChangeInfo proporciona métodos para obtener detalles de los cambios como getText() para obtener el texto de un cambio específico.

Comparar marcadores en documentos de Word

Puede comparar los marcadores presentes en los documentos de Word mediante programación siguiendo los sencillos pasos que se indican a continuación:

  1. Crear una instancia de la clase Comparador
  2. Proporcione la ruta del archivo DOCX de origen al constructor
  3. Agregar archivo DOCX de destino a la comparación
  4. Cree una instancia de CompareOptions
  5. Establezca CompareBookmarks en verdadero
  6. Llame al método Compare() junto con la ruta del archivo de salida y el objeto CompareOptions

El siguiente ejemplo de código muestra cómo comparar marcadores en documentos de Word usando Java.

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

// añadir archivo de destino
comparer.add("C:\\Files\\target.docx");

// definir opciones de comparación
CompareOptions compareOptions = new CompareOptions();
compareOptions.setCompareBookmarks(true);

// comparar y guardar comparar resultados
comparer.compare("C:\\Files\\result.docx", compareOptions);
Comparar marcadores en documentos de Word usando Java

Comparar marcadores en documentos de Word usando Java

Puede mejorar su proceso de comparación aplicando varias opciones de comparación. Para este propósito, la clase CompareOptions le permite establecer diferentes opciones de comparación proporcionando varios métodos. El método setCompareBookmarks() le permite comparar los marcadores disponibles en los documentos de origen y de destino.

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido cómo comparar dos o más documentos de Word y resaltar las diferencias usando Java. También ha aprendido cómo obtener el texto de los cambios resaltados. Además, ha aprendido a comparar marcadores en documentos de Word mediante programación. Puede obtener más información sobre GroupDocs.Comparison para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también