Compare documentos de Word usando la API REST en Node.js

Como desarrollador de Node.js, puede comparar fácilmente dos o más documentos de Word en busca de similitudes y diferencias mediante programación en la nube. Puede ayudarlo a realizar un seguimiento de los cambios en diferentes versiones del mismo documento de Word o en diferentes documentos. En este artículo, aprenderá cómo comparar dos o más documentos de Word utilizando una API REST en Node.js.

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

REST API y Node.js SDK para comparar documentos de Word

Para comparar dos o más archivos DOCX, utilizaremos la API Node.js SDK de GroupDocs.Comparison Cloud. Le permite comparar dos o más documentos y encontrar las diferencias en un archivo resultante. Puede integrar fácilmente el SDK 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 admitidos.

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

npm install groupdocs-comparison-cloud

Por favor, obtenga su ID de cliente y secreto del tablero 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 dos archivos de Word usando una API REST en Node.js

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

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

Sube los archivos DOCX

En primer lugar, suba los archivos DOCX 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\\comparison\\uploads\\';

fs.readdir(resourcesFolder, (err, files) => {
  files.forEach(file => {
    console.log(file);
    fs.readFile(resourcesFolder + file, (err, fileStream) => {
      let request = new groupdocs_comparison_cloud.UploadFileRequest(file, fileStream, myStorage);
      fileApi.uploadFile(request);
    });
  });
});

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

Compara archivos de Word usando Node.js

Puede comparar dos documentos de Word mediante programación siguiendo los pasos que se indican a continuación:

  • En primer lugar, cree una instancia de CompareApi.
  • A continuación, cree una instancia de FileInfo y establezca la ruta del archivo DOCX de entrada de origen.
  • Luego, cree otra instancia de FileInfo y establezca la ruta del archivo DOCX de entrada de destino.
  • Después de eso, cree una instancia de ComparisonOptions y asigne archivos de origen y de destino.
  • Luego, establezca la ruta del archivo de salida.
  • A continuación, cree ComparisonsRequest con ComparisonOptions.
  • Finalmente, obtenga resultados llamando al método CompareApi.comparisons() con ComparisonsRequest.

El siguiente ejemplo de código muestra cómo comparar dos archivos de Word 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.docx";

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

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

// 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);
Archivos de origen y de destino.

Archivos de origen y de destino.

Compare dos archivos de Word usando una API REST en Node.js

Compare dos archivos de Word usando una API REST en Node.js

Descargar el archivo resultante

El ejemplo de código anterior guardará las diferencias en un archivo DOCX 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_compareOptions.docx", myStorage);

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

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

Compara múltiples archivos DOCX usando Node.js

Puede comparar varios documentos de Word mediante programación siguiendo los pasos que se indican a continuación:

  • En primer lugar, cree una instancia de CompareApi.
  • A continuación, cree una instancia de FileInfo y establezca la ruta del archivo DOCX de entrada de origen.
  • Luego, cree otra instancia de FileInfo y establezca la ruta del archivo DOCX de entrada de destino.
  • Repita los pasos anteriores para agregar varios archivos de destino.
  • Después de eso, cree una instancia de ComparisonOptions y asigne archivos de origen y de destino.
  • Luego, establezca la ruta del archivo de salida.
  • A continuación, cree ComparisonsRequest con ComparisonOptions.
  • Finalmente, obtenga resultados llamando al método CompareApi.comparisons() con ComparisonsRequest

El siguiente ejemplo de código muestra cómo comparar varios archivos de Word 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.docx";

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

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

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

// 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);

Obtenga la lista de cambios usando la API REST en Node.js

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

  • En primer lugar, cree una instancia de CompareApi
  • A continuación, cree una instancia de FileInfo y configure la ruta del archivo DOCX de entrada de origen
  • Luego, cree otra instancia de FileInfo y configure la ruta del archivo DOCX de entrada de destino
  • Después de eso, cree una instancia de ComparisonOptions y asigne archivos de origen y destino
  • Luego, establezca la ruta del archivo de salida
  • A continuación, cree PostChangesRequest con ComparisonOptions
  • Después de eso, obtenga resultados llamando al método CompareApi.postChanges() con PostChangesRequest
  • Finalmente, muestra 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.docx";

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

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

// crear solicitud de cambios posteriores
let request = new groupdocs_comparison_cloud.PostChangesRequest(options);

// publicar cambios
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 la API REST en Node.js

Obtenga la lista de cambios usando la API REST en Node.js

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 indican a continuación:

  • En primer lugar, cree una instancia de CompareApi.
  • A continuación, cree una instancia de FileInfo y establezca la ruta del archivo DOCX de entrada de origen.
  • Luego, cree otra instancia de FileInfo y establezca la ruta del archivo DOCX de entrada de destino.
  • Después de eso, cree una instancia de la Configuración y establezca varias configuraciones de comparación, como la sensibilidad de la comparación.
  • A continuación, cree instancias de ItemsStyle para insertItemsStyle, deleteItemsStyle y changesItemsStyle.
  • Luego, establezca varias propiedades para cada ItemsStyle, como HighlightColor, fontColor, negrita, cursiva, etc.
  • Después de eso, cree una instancia de ComparisonOptions y asigne archivos de origen y de destino.
  • Luego, establezca la ruta del archivo de salida.
  • A continuación, asigne la configuración a ComparisonOptions
  • Después de eso, cree ComparisonsRequest con ComparisonOptions.
  • Finalmente, obtenga resultados llamando al método CompareApi.comparisons() con ComparisonsRequest

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.docx";

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

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

// comparar la sensibilidad
settings.sensitivityOfComparison = 100;

// personalizar el estilo de cambios para los elementos insertados
settings.insertedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.insertedItemsStyle.highlightColor = "14297642";
settings.insertedItemsStyle.fontColor = "16711680";
settings.insertedItemsStyle.underline = true;

// personalizar el estilo de cambios para los elementos eliminados
settings.deletedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.deletedItemsStyle.fontColor = "14166746";
settings.deletedItemsStyle.bold = true;

// personalizar el estilo de cambios para los elementos modificados
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.docx";
options.settings = settings;

// 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);

Prueba en línea

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

Conclusión

En este artículo, ha aprendido a comparar documentos de Word utilizando una API REST en la nube. Además, ha visto cómo comparar múltiples archivos DOCX mediante programación. Este artículo también explicó cómo cargar mediante programación un archivo DOCX a la nube y luego descargar el archivo resultante de la nube. Además, 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