Compare archivos PDF utilizando la API REST en NodeJs

Puede comparar dos o más documentos PDF mediante programación en la nube. La comparación le permite identificar similitudes y diferencias en los documentos. En este artículo, aprenderá a comparar archivos PDF mediante una API REST en Node.js.

En este artículo se tratarán los siguientes temas:

Comparación de documentos API REST y SDK de Node.js

Usaré la API Node.js SDK de GroupDocs.Comparison Cloud para comparar documentos PDF. Le permite comparar dos o más documentos y encontrar las diferencias. Como resultado, crea un archivo resultante que contiene las diferencias. También le permite aceptar o rechazar los cambios recuperados. Puede integrarlo fácilmente en sus aplicaciones Node.js existentes para comparar documentos, hojas de cálculo, presentaciones, diagramas de Visio, correos electrónicos y archivos de muchos otros formatos. También proporciona SDK de .NET, Java, PHP, Python y Ruby como sus miembros de la familia de comparación de documentos para la API de la nube.

Puede instalar GroupDocs.Comparison Cloud en su aplicación Node.js con el siguiente comando en la consola:

npm install groupdocs-comparison-cloud --save

Obtenga su ID de cliente y secreto del panel de control antes de seguir los pasos mencionados. Una vez que tenga su ID y secreto, agregue el código como se muestra a continuación:

global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

const config = new groupdocs_comparison_cloud.Configuration(clientId, clientSecret);
config.apiBaseUrl = "https://api.groupdocs.cloud";

Compare archivos PDF utilizando una API REST en Node.js

Puede comparar sus documentos PDF mediante programación siguiendo los sencillos pasos que se indican a continuación:

  1. Subir los archivos PDF a la Nube
  2. Comparar archivos PDF usando Node.js
  3. Descargar el archivo PDF resultante

Sube los archivos PDF

En primer lugar, suba los archivos PDF de origen y de destino a la nube utilizando el siguiente ejemplo de código:

// construir FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);
let resourcesFolder = 'C:\\Files\\';

fs.readdir(resourcesFolder, (err, files) => {
  files.forEach(file => {
    // leer archivos uno por uno
    fs.readFile(resourcesFolder + file, (err, fileStream) => {
      // crear solicitud de carga de archivo
      let request = new groupdocs_comparison_cloud.UploadFileRequest(file, fileStream, myStorage);
      // subir archivo
      fileApi.uploadFile(request)
        .then(function (response) {
          console.log(file + " uploaded: " + response.uploaded.length);
        })
        .catch(function (error) {
          console.log("Error: " + error.message);
        });
    });
  });
});

Como resultado, los archivos PDF cargados estarán disponibles en la sección de archivos de su tablero en la nube.

Compara archivos PDF usando Node.js

Puede comparar dos documentos PDF mediante programación siguiendo los pasos que se mencionan a continuación:

  • Crear una instancia de CompareApi
  • Establecer el archivo .pdf de origen
  • Establecer el archivo .pdf de destino
  • Definir opciones de comparación
  • Asignar archivos de origen y de destino
  • Establecer la ruta del archivo de salida
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()

El siguiente ejemplo de código muestra cómo comparar dos archivos PDF mediante una API REST en Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// archivo fuente
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// archivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// definir opciones de comparación
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result.pdf";

// crear solicitud de comparación
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);
console.log("Output file link: " + response.href);
Compara archivos PDF usando Node.js

Compara archivos PDF usando Node.js

El archivo resultante también contiene una página de resumen al final del documento, como se muestra a continuación:

Compare archivos PDF utilizando la API REST en Node.js

Descargar el archivo resultante

El ejemplo de código anterior guardará las diferencias en un archivo PDF recién creado en la nube. Puede descargarlo utilizando el siguiente ejemplo de código:

// construir FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);

// crear solicitud de archivo de descarga
let request = new groupdocs_comparison_cloud.DownloadFileRequest("compared\\result.pdf", myStorage);

// descargar archivo
let response = await fileApi.downloadFile(request);

// guardar en el directorio de trabajo
fs.writeFile("C:\\Files\\result.pdf", response, "binary", function (err) { });

Compara múltiples archivos PDF usando Node.js

Puede comparar varios documentos PDF mediante programación siguiendo los sencillos pasos que se mencionan a continuación:

  • Crear una instancia de CompareApi
  • Establecer el archivo .pdf de origen
  • Establecer varios archivos .pdf de destino
  • Crear una instancia de ComparisonOptions
  • Asignar archivos de origen y de destino
  • Establecer la ruta del archivo de salida
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()

El siguiente ejemplo de código muestra cómo comparar varios archivos PDF mediante una API REST en Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// archivo fuente
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// archivo de destino 1
let target1 = new groupdocs_comparison_cloud.FileInfo();
target1.filePath = "target.pdf";

// archivo de destino 2
let target2 = new groupdocs_comparison_cloud.FileInfo();
target2.filePath = "target2.pdf";

// definir opciones de comparación
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target1, target2];
options.outputPath = "comparard/result.pdf";

// crear solicitud de comparación
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);

Personalice los resultados de la comparación con Node.js

Puede personalizar fácilmente el estilo de los cambios mediante programación siguiendo los pasos que se mencionan a continuación:

  • Crear una instancia de CompareApi
  • Establecer el archivo .pdf de origen
  • Establecer el archivo .pdf de destino
  • Crear instancia de configuración
  • Establecer la sensibilidad de comparación
  • Personalizar el estilo de los artículos
  • Crear una instancia de ComparisonOptions
  • Asignar archivos de origen y de destino
  • Establecer la ruta del archivo de salida
  • Asignar configuraciones
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()

El siguiente ejemplo de código muestra cómo personalizar los resultados de la comparación mediante una API REST en Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// archivo fuente
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// archivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// definir la configuración de comparación
let settings = new groupdocs_comparison_cloud.Settings();

// comparar la sensibilidad
settings.sensitivityOfComparison = 100;

// personalizar los cambios de estilo
settings.insertedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.insertedItemsStyle.highlightColor = "14297642";
settings.insertedItemsStyle.fontColor = "16711680";
settings.insertedItemsStyle.underline = true;
settings.deletedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.deletedItemsStyle.fontColor = "14166746";
settings.deletedItemsStyle.bold = true;
settings.changedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.changedItemsStyle.fontColor = "14320170";
settings.changedItemsStyle.italic = true;

// definir opciones de comparación
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result_compararOptions.pdf";
options.settings = settings;

// crear solicitud de comparación
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);

Obtenga la lista de cambios usando Node.js

Puede obtener una lista completa de las diferencias encontradas después de comparar documentos PDF mediante programación siguiendo los sencillos pasos que se mencionan a continuación:

  • Crear una instancia de CompareApi
  • Establecer el archivo .pdf de origen
  • Establecer el archivo .pdf de destino
  • Definir opciones de comparación
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()
  • Mostrar todos los cambios uno por uno

El siguiente ejemplo de código muestra cómo obtener una lista de cambios mediante una API REST en Node.js.

// inicializar API
let compareApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// archivo fuente
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// archivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// definir opciones de comparación
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "compared/result.pdf";

// crear solicitud de comparación
let request = new groupdocs_comparison_cloud.PostChangesRequest(options);
let changes = await compareApi.postChanges(request);

console.log("Changes count: " + changes.length);

changes.forEach(change => {
  console.log(change.id + 1 +"- Target Text: " + change.targetText + ", Text: " + change.text + ", Type: " + change.type);
});
Obtenga la lista de cambios usando Node.js

Obtenga la lista de cambios usando Node.js

Compare y guarde con contraseña y metadatos usando Node.js {#Compare-and-Save-with-Password-&-Metadata-using-Nodejs}

Siga los pasos que se mencionan a continuación para proteger con contraseña el archivo resultante y guardarlo con metadatos:

  • Crear una instancia de CompareApi
  • Establecer el archivo .pdf de origen
  • Establecer el archivo .pdf de destino
  • Crear instancia de configuración
  • Establecer metadatos y contraseña
  • Crear una instancia de ComparisonOptions
  • Asignar archivos de origen y de destino
  • Establecer la ruta del archivo de salida
  • Asignar configuraciones
  • Crear Solicitud de Comparaciones
  • Obtenga resultados llamando al método CompareApi.comparisons()

El siguiente ejemplo de código muestra cómo guardar el archivo resultante con contraseña y metadatos mediante una API REST en Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// archivo fuente
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// archivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

let settings = new groupdocs_comparison_cloud.Settings();

// establecer metadatos
settings.metadata = new groupdocs_comparison_cloud.Metadata();
settings.metadata.author = "Author";
settings.metadata.company = "GroupDocs";
settings.metadata.lastSaveBy = "Last saved by";
settings.cloneMetadata = groupdocs_comparison_cloud.Settings.CloneMetadataEnum.FileAuthor;

// configurar la clave
settings.password = "password";
settings.passwordSaveOption = groupdocs_comparison_cloud.Settings.PasswordSaveOptionEnum.User;

// definir opciones de comparación
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result_Metadata.pdf";
options.settings = settings;

// crear solicitud de comparación
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);

Prueba en línea

Pruebe la siguiente herramienta gratuita de comparación de PDF en línea, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/comparison/pdf

Conclusión

En este artículo, ha aprendido a comparar documentos PDF en la nube. También ha aprendido a comparar varios archivos PDF, personalizar el estilo de los cambios y obtener una lista de cambios. Además, ha aprendido cómo cargar mediante programación varios archivos PDF en la nube y luego descargar el archivo resultante de la nube. Puede obtener más información sobre GroupDocs.Comparison Cloud API utilizando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también