GroupDocs.Comparison for .NET es una biblioteca de C# que le permite comparar documentos y encontrar diferencias. Compare y combine Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML y muchos otros documentos, recupere una lista de cambios entre los documentos de origen y de destino, aplique o rechace cambios y guarde los resultados con GroupDocs .API de comparación. Además de esto, GroupDocs.Comparison puede identificar cambios de estilo y formato, como negrita, cursiva, subrayado, tachado, tipos de fuente, etc.

Los algoritmos de detección de cambios utilizados por GroupDocs.Comparison permiten detectar diferencias en diferentes partes y bloques del documento:

  • Bloques de texto: párrafos, palabras y caracteres;
  • Mesas;
  • Imágenes;
  • Formas, etc

Aquí hay pasos simples para comparar dos archivos de texto y mostrar las diferencias:

  • Instanciar el objeto Comparador con la ruta o secuencia del documento de origen;
  • Llame al método Agregar y especifique la ruta o secuencia del documento de destino;
  • Llame al método Comparar.

El siguiente fragmento de código demuestra el caso más simple de comparación de documentos utilizando un par de líneas de código.

Comparar documentos del archivo local

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
}

Comparar documentos del flujo

using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
    comparer.Add(File.OpenRead(“target.docx”));
    comparer.Compare(File.Create(“result.docx”));
}

Supongamos que tiene dos contratos en formato DOCX que se celebraron en años diferentes. Si usa el código anterior para comparar estos contratos, obtiene un archivo DOCX donde los elementos eliminados están marcados en rojo, los agregados en azul y los modificados en verde, como se muestra a continuación:

Aceptar o rechazar las diferencias detectadas

GroupDocs.Comparison ofrece la posibilidad de aplicar o descartar cambios específicos entre los documentos de origen y de destino y guardar el documento resultante con (o sin) los cambios seleccionados.

Los siguientes son los pasos para aplicar/rechazar cambios al documento resultante.

El siguiente ejemplo de código muestra cómo aceptar o rechazar las diferencias detectadas.

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes });
}

Generar vista previa de páginas de documentos

GroupDocs.Comparison permite generar vistas previas de página para documentos de origen, de destino y resultantes utilizando el método GeneratePreview de una clase Documento.

La clase PreviewOptions se usa para administrar el proceso de generación de vistas previas: especifique los números de página deseados, el formato de imagen, etc.

Los siguientes son los pasos para generar una vista previa del documento con GroupDocs.Comparison API:

  • Cree una nueva instancia de la clase Comparador y pase la ruta del documento de origen como parámetro del constructor;
  • Agregar documento(s) de destino a la comparación usando el método Agregar;
  • Las propiedades Origen y Destinos del objeto Comparador permiten acceder a los documentos de origen y de destino y proporciona el método Generar vista previa;
  • Crea una instancia del objeto PreviewOptions con:
    • delegado para cada creación de flujo de página (consulte el controlador de eventos CreatePageStream);
    • formato de vista previa de imagen - PNG / JPG / BMP;
    • números de página a procesar;
    • tamaño personalizado de las imágenes de vista previa (si es necesario).
  • Llame al método GeneratePreview del documento Source y Targets y pásele PreviewOptions.

Obtener vistas previas de página para el documento resultante

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
    Document document = new Document(File.OpenRead(“result.docx”));
    PreviewOptions previewOptions = new PreviewOptions(pageNumber =>
    {
        var pagePath = Path.Combine(“C:\\”, $"result\_{pageNumber}.png");
        return File.Create(pagePath);
    });
    previewOptions.PreviewFormat = PreviewFormats.PNG;
    previewOptions.PageNumbers = new int[] { 1, 2 };
    document.GeneratePreview(previewOptions);
}

Compara varios documentos

GroupDocs.Comparison permite comparar más de dos documentos. El siguiente ejemplo de código muestra cómo comparar varios documentos mediante programación.

using (Comparer comparer = new Comparer(“source.docx”)
{
    comparer.Add(“target1.docx”);
    comparer.Add(“target2.docx”);
    comparer.Add(“target3.docx”);
    comparer.Compare(“result.docx”);
}

Instalación

NuGet es la forma más fácil de descargar e instalar GroupDocs.Comparison para .NET. Obtenga una licencia temporal para probar la biblioteca sin restricciones funcionales.

Consulte la documentación para obtener más información sobre la biblioteca. También ofrecemos asistencia técnica gratuita, así que no dude en contactarnos; estaremos encantados de ayudarle.