Comparación de documentos para detectar diferencias

Introducción

¿Alguna vez te preguntaste cómo detectar cada una de las diferencias entre dos documentos de Word? Quizás estés revisando un documento o intentando encontrar los cambios realizados por un colaborador. Las comparaciones manuales pueden ser tediosas y propensas a errores, pero con Aspose.Words para Java, ¡es muy fácil! Esta biblioteca te permite automatizar la comparación de documentos, resaltar revisiones y combinar cambios sin esfuerzo.

Prerrequisitos

Antes de saltar al código, asegúrese de tener lo siguiente listo:

  1. Java Development Kit (JDK) instalado en su sistema.
  2. Biblioteca Aspose.Words para Java. Puedes Descárgalo aquí .
  3. Un entorno de desarrollo como IntelliJ IDEA o Eclipse.
  4. Familiaridad básica con la programación Java.
  5. Una licencia válida de Aspose. Si no tiene una, obtenga una Licencia temporal aquí .

Importar paquetes

Para utilizar Aspose.Words, debe importar las clases necesarias. A continuación, se muestran las importaciones necesarias:

import com.aspose.words.*;
import java.util.Date;

Asegúrese de que estos paquetes se agreguen correctamente a las dependencias de su proyecto.

En esta sección, dividiremos el proceso en pasos simples.

Paso 1: Configura tus documentos

Para empezar, necesitas dos documentos: uno que represente el original y otro que represente la versión editada. A continuación te indicamos cómo crearlos:

Document doc1 = new Document();
DocumentBuilder builder = new DocumentBuilder(doc1);
builder.writeln("This is the original document.");

Document doc2 = new Document();
builder = new DocumentBuilder(doc2);
builder.writeln("This is the edited document.");

Esto crea dos documentos en la memoria con contenido básico. También puede cargar documentos de Word existentes utilizandonew Document("path/to/document.docx").

Paso 2: Verificar si existen revisiones

Las revisiones en documentos de Word representan cambios registrados. Antes de comparar, asegúrese de que ningún documento contenga revisiones preexistentes:

if (doc1.getRevisions().getCount() == 0 && doc2.getRevisions().getCount() == 0) {
    System.out.println("No revisions found. Proceeding with comparison...");
}

Si existen revisiones, es posible que desees aceptarlas o rechazarlas antes de continuar.

Paso 3: Comparar los documentos

Utilice elcompare Método para encontrar diferencias. Este método compara el documento de destino (doc2) con el documento fuente (doc1):

doc1.compare(doc2, "AuthorName", new Date());

Aquí:

  • AuthorName es el nombre de la persona que realiza los cambios.
  • La fecha es la marca de tiempo de comparación.

Paso 4: Procesar revisiones

Una vez comparado, Aspose.Words generará revisiones en el documento fuente (doc1). Analicemos estas revisiones:

for (Revision r : doc1.getRevisions()) {
    System.out.println("Revision type: " + r.getRevisionType());
    System.out.println("Node type: " + r.getParentNode().getNodeType());
    System.out.println("Changed text: " + r.getParentNode().getText());
}

Este bucle proporciona información detallada sobre cada revisión, como el tipo de cambio y el texto afectado.

Paso 5: Aceptar todas las revisiones

Si desea el documento fuente (doc1) para que coincida con el documento de destino (doc2), acepta todas las revisiones:

doc1.getRevisions().acceptAll();

Esta actualizacióndoc1 para reflejar todos los cambios realizados endoc2.

Paso 6: Guarde el documento actualizado

Por último, guarde el documento actualizado en el disco:

doc1.save("Document.Compare.docx");

Para confirmar los cambios, vuelva a cargar el documento y verifique que no haya revisiones restantes:

doc1 = new Document("Document.Compare.docx");
if (doc1.getRevisions().getCount() == 0) {
    System.out.println("Documents are now identical.");
}

Paso 7: Verificar la igualdad de documentos

Para asegurarse de que los documentos sean idénticos, compare su texto:

if (doc1.getText().trim().equals(doc2.getText().trim())) {
    System.out.println("Documents are equal.");
}

Si los textos coinciden, ¡felicitaciones! ¡Ha comparado y sincronizado los documentos con éxito!

Conclusión

La comparación de documentos ya no es una tarea ardua gracias a Aspose.Words para Java. Con solo unas pocas líneas de código, puede identificar diferencias, procesar revisiones y garantizar la coherencia de los documentos. Ya sea que esté administrando un proyecto de escritura colaborativa o auditando documentos legales, esta función es un cambio radical.

Preguntas frecuentes

¿Puedo comparar documentos con imágenes y tablas?

Sí, Aspose.Words admite la comparación de documentos complejos, incluidos aquellos con imágenes, tablas y formato.

¿Necesito una licencia para utilizar esta función?

Sí, se requiere una licencia para la funcionalidad completa. Obtenga una Licencia temporal aquí .

¿Qué pasa si hay revisiones preexistentes?

Debes aceptarlos o rechazarlos antes de comparar documentos para evitar conflictos.

¿Puedo resaltar las revisiones en el documento?

Sí, Aspose.Words le permite personalizar cómo se muestran las revisiones, como resaltando los cambios.

¿Esta función está disponible en otros lenguajes de programación?

Sí, Aspose.Words admite varios idiomas, incluidos .NET y Python.