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

Puede editar fácilmente sus documentos de Word mediante programación en la nube. Puede agregar, editar el contenido de los documentos o puede aplicar formato de texto en documentos de Word mediante programación en sus aplicaciones Node.js. Este artículo se centrará en cómo editar documentos de Word utilizando una API REST en Node.js.

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

API REST del editor de documentos y SDK de Node.js

Usaré la API Node.js SDK de GroupDocs.Editor Cloud para editar los archivos DOCX. Le permite editar documentos mediante programación de los formatos compatibles, como Word, hojas de cálculo de Excel, PowerPoint, TXT, HTML, XML. La API también le permite convertir el documento a HTML para editarlo y lo vuelve a convertir a su formato original manteniendo la misma apariencia después de editar el documento. También proporciona SDK de .NET, Java, PHP, Ruby, Android y Python como sus miembros de la familia de editores de documentos para la API de la nube.

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

npm install groupdocs-editor-cloud

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 configuration = new groupdocs_editor_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

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

Puede editar los documentos de Word siguiendo los sencillos pasos que se mencionan a continuación:

  1. Subir el archivo de Word a la Nube
  2. Editar Documento de Word usando Node.js
  3. Descargar el archivo actualizado

Sube el documento

En primer lugar, cargue el documento de Word (DOCX) en la nube utilizando el ejemplo de código que se muestra a continuación:

// construir FileApi
let fileApi = groupdocs_editor_cloud.FileApi.fromConfig(configuration);
let resourcesFolder = 'C:\\Files\\sample.docx';

fs.readFile(resourcesFolder, (err, fileStream) => {
  let request = new groupdocs_editor_cloud.UploadFileRequest("sample.docx", fileStream, myStorage);
  fileApi.uploadFile(request);
});

Como resultado, el archivo DOCX cargado estará disponible en la sección de archivos de su tablero en la nube.

Editar documento de Word usando Node.js

Siga los pasos que se mencionan a continuación para editar los documentos de Word mediante programación.

  • Cree instancias de FileAPI y EditAPI
  • Proporcione la ruta del archivo de entrada en FileInfo
  • Crear WordProcessingLoadOptions
  • Crear LoadRequest con LoadOptions
  • Cargue un archivo con el método load() de EditAPI
  • Crear DownloadFileRequest con archivo cargado
  • Descargar documento HTML usando el método downloadFile() de FileAPI
  • Edite el documento HTML descargado
  • Crear solicitud de archivo de carga
  • Vuelva a cargar HTML usando el método uploadFile() de FileAPI
  • Proporcione WordProcessingSaveOptions para guardar en el DOCX
  • Crear SaveRequest con SaveOptions
  • Guarde HTML nuevamente en DOCX usando el método save() de Edit API

El siguiente fragmento de código muestra cómo editar un documento de Word usando una API REST en Node.js.

// inicialización de la API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// fichero de entrada      
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// definir opciones de carga
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// crear solicitud de carga
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// descargar documento html
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// editar algo...
htmlString = htmlString.replace("Title of the document", "Welcome");
htmlString = htmlString.replace("Subtitle #1", "Hello world");

// cargar html de nuevo al almacenamiento
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// guardar html de nuevo en docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// crear solicitud de guardado
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Edite documentos de Word usando una API REST en Node.js

Edite documentos de Word usando una API REST en Node.js

Descargar el archivo actualizado

El ejemplo de código anterior guardará el documento de Word editado (DOCX) en la nube. Puede descargarlo utilizando el siguiente ejemplo de código:

// inicializar API
var fileApi = groupdocs_editor_cloud.FileApi.fromConfig(configuration);

// crear solicitud de descarga de archivo
let request = new groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", myStorage);

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

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

Agregar tabla en documentos de Word usando Node.js

Puede agregar una tabla en el documento de Word mediante programación siguiendo los pasos que se mencionan a continuación:

  • Cree instancias de FileAPI y EditAPI
  • Proporcione la ruta del archivo de entrada en FileInfo
  • Crear WordProcessingLoadOptions
  • Crear LoadRequest con LoadOptions
  • Cargue un archivo con el método load() de EditAPI
  • Crear DownloadFileRequest con archivo cargado
  • Descargar documento HTML usando el método downloadFile() de FileAPI
  • Edite el documento HTML descargado and add a table
  • Crear solicitud de archivo de carga
  • Vuelva a cargar HTML utilizando el método uploadFile() de FileAPI
  • Proporcione WordProcessingSaveOptions para guardar en el DOCX
  • Crear SaveRequest con SaveOptions
  • Guarde HTML nuevamente en DOCX usando el método save() de EditAPI

El siguiente fragmento de código muestra cómo agregar una tabla en un documento de Word usando una API REST en Node.js.

// inicialización de la API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// fichero de entrada      
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// definir opciones de carga
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// crear solicitud de carga
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// descargar documento html
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// agregar tabla
htmlString = htmlString.replace("left-aligned.", "left-aligned. <br/><table style=\"width: 100%;background-color: #dddddd;\">"
		+ "<caption style=\"font-weight:bold;\"> Persons List</caption>"
		+ "<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>"
		+ "<tr><td>Jill</td><td>Smith</td><td>50</td></tr>"
		+ "<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>"
		+ "</table>");

// cargar html de nuevo al almacenamiento
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// guardar html de nuevo en docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// crear solicitud de guardado
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Agregar tabla en documentos de Word usando Node.js

Agregar tabla en documentos de Word usando Node.js

Insertar imagen en documentos de Word usando Node.js

Puede insertar una imagen en el documento de Word mediante programación siguiendo los pasos que se mencionan a continuación:

  • Crear instancias de FileAPI y EditAPI
  • Proporcione la ruta del archivo de entrada en FileInfo
  • Crear WordProcessingLoadOptions
  • Crear LoadRequest con LoadOptions
  • Cargue un archivo con el método load() de EditAPI
  • Crear DownloadFileRequest con archivo cargado
  • Descargar documento HTML usando el método downloadFile() de FileAPI
  • Edite el documento HTML descargado and insert an image
  • Crear solicitud de archivo de carga
  • Vuelva a cargar HTML utilizando el método uploadFile() de FileAPI
  • Proporcione WordProcessingSaveOptions para guardar en el DOCX
  • Crear SaveRequest con SaveOptions
  • Guarde HTML nuevamente en DOCX usando el método save() de EditAPI

El siguiente fragmento de código muestra cómo insertar una imagen en un documento de Word usando una API REST en Node.js.

// inicialización de la API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// fichero de entrada   
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// definir opciones de carga
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// crear solicitud de carga
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// descargar documento html
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// insertar una imagen
htmlString = htmlString.replace("left-aligned.", "left-aligned. <br/> <img src=\"sample.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">");

// cargar html de nuevo al almacenamiento
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// guardar html de nuevo en docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// crear solicitud de guardado
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Insertar imagen en documentos de Word usando Node.js

Insertar imagen en documentos de Word usando Node.js

Prueba en línea

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

Conclusión

En este artículo, ha aprendido a editar documentos de Word en la nube. También aprendió cómo agregar una tabla en el archivo DOCX usando una API REST en Node.js. Además, ha aprendido cómo insertar una imagen en un documento de Word mediante programación. Este artículo también explicó cómo cargar mediante programación un archivo DOCX en la nube y luego descargar el archivo editado de la nube. Puede obtener más información sobre GroupDocs.Editor 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