Los documentos de procesamiento de texto son la forma más común de redactar contratos, acuerdos, documentos y muchos otros documentos oficiales. Si necesita comparar y fusionar dos documentos de Word, al igual que la opción de control de cambios de Microsoft Word, podemos hacerlo mediante programación dentro de nuestras aplicaciones .NET. En este artículo, discutiremos cómo comparar dos documentos de Word y resaltar las diferencias identificadas usando C#. Además, veremos cómo comparar documentos protegidos con contraseña, aceptar y rechazar cambios y comparar más de dos documentos con ejemplos de C#.

Compare documentos de Word para encontrar diferencias usando la API de .NET

Aquí se tratan los siguientes temas:

API .NET para comparar documentos de Word

GroupDocs.Comparison proporciona una API .NET que permite comparar y luego fusionar varios documentos de múltiples formatos de archivo dentro de la aplicación .NET. Usaré su API de .NET, es decir, GroupDocs.Comparison for .NET para comparar documentos de Word.

Puede descargar las DLL o el instalador MSI desde la sección de descargas o instalar la API en su aplicación .NET a través de NuGet.

PM> Install-Package GroupDocs.Comparison

Compara documentos de Word usando C#

Si tiene dos versiones de un documento, puede comparar los documentos para encontrar sus diferencias (adiciones, eliminaciones) y crear un nuevo documento que muestre todos los cambios. Los siguientes son los pasos para comparar dos documentos de Word y resaltar las diferencias.

  • Cargue el primer documento de Word usando la clase Comparador.
  • Agregue el segundo archivo a Comparador usando el método Add().
  • Compare el resumen de cambios obtenidos simplemente llamando al método Compare().

El siguiente código de C# muestra cómo comparar documentos de Word y obtener los cambios en el documento resultante.

/*
 * Compare dos documentos de Word y resalte los cambios usando C#
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

Acepte o rechace cambios identificados de documentos de Word usando C#

De manera similar a la opción de seguimiento de cambios de MS Word, puede aceptar o rechazar cada cambio identificado. Los siguientes son los pasos para comparar y luego aceptar o rechazar los cambios identificados dentro de los documentos de Word.

  • Cargue el documento de origen y agregue los documentos de Word de destino utilizando la clase Comparador.
  • Hacer la comparación de documentos cargados utilizando el método Compare().
  • Obtener los cambios identificados utilizando el método GetChanges().
  • Ahora puede recorrer los cambios y configurar Acción de comparación de cada cambio.
    • Para cada cambio, puede seleccionar Aceptar o Rechazar.
  • Cuando haya terminado con los cambios, llame al método ApplyChanges() para obtener el documento resultante con los cambios aplicados.

El siguiente código fuente de C# compara dos documentos de Word y luego acepta un cambio identificado y luego rechaza otro.

/*
 * Acepte y rechace los cambios identificados comparando documentos de Word usando C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Rechazar el primer cambio identificado y no se agregará al documento de resultados
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

Compara más de dos documentos usando C#

Del mismo modo, se pueden comparar más de dos documentos a la vez. Los siguientes son los pasos para comparar múltiples documentos de Word en busca de diferencias y resaltar los cambios identificados.

  • Cargue el primer documento de Word usando la clase Comparador.
  • Continúe agregando los otros documentos a Comparador utilizando el método Add().
  • Llame al método Compare() para obtener los cambios y el resumen de los cambios.

El siguiente código C# muestra cómo comparar más de dos documentos de Word y obtener los cambios en el documento resultante.

/*
 * Compara múltiples documentos de Word usando C#
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

Compare documentos de Word protegidos con contraseña usando C#

Si sus documentos están protegidos con contraseña, simplemente proporcione su contraseña mientras carga los documentos. Los siguientes pasos muestran cómo podemos comparar el contenido de documentos protegidos con contraseña usando C#.

  • Preparar las opciones de carga para los documentos de origen y de destino proporcionando la contraseña.
  • Cargue el documento de origen usando la clase Comparador.
  • Agregue el documento de destino a Comparador utilizando las opciones de carga preparadas.
  • Obtenga el resumen de las diferencias llamando al método Compare().

El siguiente ejemplo de código C# compara dos archivos de Word protegidos con contraseña y genera el documento resultante que resalta las diferencias.

/*
 * Compare documentos de Word protegidos con contraseña usando C#
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar la API sin las limitaciones de evaluación.

Conclusión

Para concluir, aprendimos a comparar dos o más documentos de Word usando C#. Además, después de resaltar las diferencias, aprendimos a aceptar y rechazar mediante programación los cambios identificados. Al final, también discutimos cómo podríamos comparar los documentos de Word protegidos con contraseña dentro de las aplicaciones .NET.

Hay muchas otras personalizaciones para controlar los resultados de la comparación, como establecer la sensibilidad de la comparación, mostrar solo la página de resumen, ignorar brechas y mucho más. Obtenga más información sobre GroupDocs.Comparison para .NET. Visite su documentación para comenzar a crear sus propias aplicaciones de comparación de documentos para varios formatos de documentos admitidos. Para consultas, contáctenos a través del foro.

Ver también