Debido a que PDF es uno de los formatos más utilizados en el mundo digital, a menudo se requiere comparar dos versiones del mismo documento. Este artículo analiza cómo comparar dos documentos PDF y resaltar las diferencias usando C#. Además, veremos cómo comparar archivos PDF protegidos con contraseña, aceptar y rechazar cambios, y también la comparación de más de dos archivos PDF con ejemplos de C#.

Compare documentos PDF para encontrar diferencias utilizando la API de .NET

Aquí se tratan los siguientes temas:

API .NET para comparar archivos PDF

GroupDocs.Comparison for .NET es la API que permite la comparación entre múltiples documentos PDF y muchos otros archivos del mismo formato de documento dentro de las aplicaciones .NET. Usaré esta API en los ejemplos de código C# de este artículo para comparar documentos PDF.

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 PDF usando C#

Si tiene varias copias de un documento PDF, puede comparar estos archivos para encontrar las diferencias (adiciones, eliminaciones). Después de comparar el contenido del PDF, puede crear un nuevo documento que resalte todos los cambios identificados. Los siguientes son los pasos para comparar dos documentos PDF y resaltar las diferencias usando C#.

  • Cargue el primer documento PDF utilizando la clase Comparador.
  • Agregue el segundo archivo a Comparador usando el método Add().
  • Compare ambos archivos PDF y obtenga el resumen de cambios llamando al método Compare().

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

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

Acepte o rechace cambios identificados de archivos PDF usando C#

Al igual que las funciones de control de cambios, puede aceptar o rechazar mediante programación cada cambio identificado en los documentos PDF. Los siguientes pasos muestran cómo comparar y luego aceptar o rechazar los cambios identificados dentro de los documentos PDF.

  • Cargue los archivos PDF de origen y de destino utilizando la clase Comparador.
  • Comparar documentos cargados usando el método Compare().
  • Obtener los cambios identificados utilizando el método GetChanges().
  • Ahora recorra los cambios y establezca la Acción de comparación.
    • Seleccione Aceptar o Rechazar para cada cambio.
  • Llame al método ApplyChanges() para obtener el documento resultante con los cambios aceptados.

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

/*
 * Acepte y rechace los cambios identificados comparando documentos PDF usando C#
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    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.pdf", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

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

Compara más de dos archivos PDF usando C#

Del mismo modo, puede comparar más de dos documentos. Los siguientes son los pasos que comparan múltiples documentos PDF en busca de diferencias y resaltan los cambios identificados.

  • Cargue los primeros archivos PDF usando la clase Comparador.
  • Agregar otro(s) documento(s) a Comparador usando el método Add().
  • Compare todos los archivos PDF utilizando el método Comparar() y obtenga los cambios y el resumen de los cambios.

El siguiente ejemplo muestra cómo comparar varios archivos PDF en C# y obtener los cambios en el documento resultante.

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

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

Compare documentos PDF protegidos con contraseña usando C#

Puede comparar los archivos protegidos con contraseña simplemente proporcionando sus contraseñas mientras carga estos documentos. Los siguientes pasos muestran cómo podemos comparar el contenido PDF de documentos protegidos con contraseña utilizando 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 compara dos archivos PDF protegidos con contraseña y resalta las diferencias identificadas en un documento separado usando C#.

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

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 archivos PDF usando C#. Además, resaltamos las diferencias y aceptamos o rechazamos programáticamente los cambios identificados. Por último, vimos cómo comparar documentos PDF protegidos con contraseña dentro de aplicaciones .NET.

Varias otras personalizaciones están disponibles para controlar los resultados de la comparación. Puede configurar la sensibilidad de comparación, mostrar solo la página de resumen, ignorar brechas, etc. Obtenga más información sobre GroupDocs.Comparison para .NET en la documentación. Puede crear sus propias aplicaciones de comparación de documentos para varios formatos de documentos. Para consultas, contáctenos a través del foro.

Ver también