Editar documentos do Word usando a API REST no Node.js

Você pode editar facilmente seus documentos do Word programaticamente na nuvem. Você pode adicionar, editar o conteúdo dos documentos ou pode aplicar formatação de texto em documentos do Word programaticamente em seus aplicativos Node.js. Este artigo se concentrará em como editar documentos do Word usando uma API REST no Node.js.

Os seguintes tópicos serão abordados neste artigo:

API REST do editor de documentos e SDK Node.js

Estarei usando a API Node.js SDK of GroupDocs.Editor Cloud para editar os arquivos DOCX. Ele permite que você edite documentos de forma programática nos formatos suportados, como Word, planilhas do Excel, PowerPoint, TXT, HTML, XML. A API também permite que você converta o documento em HTML para edição e o converta de volta ao seu formato original, mantendo a mesma aparência após a edição do documento. Ele também fornece SDKs .NET, Java, PHP, Ruby, Android e Python como seus membros da família de editores de documentos para a Cloud API.

Você pode instalar o GroupDocs.Editor Cloud em seu aplicativo Node.js usando o seguinte comando no console:

npm install groupdocs-editor-cloud

Obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

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

Editar documentos do Word usando a API REST no Node.js

Você pode editar os documentos do Word seguindo as etapas simples mencionadas abaixo:

  1. Carregar o arquivo do Word para a nuvem
  2. Editar Documento do Word usando Node.js
  3. Baixe o arquivo atualizado

Carregue o Documento

Em primeiro lugar, carregue o documento do Word (DOCX) para a nuvem usando o exemplo de código abaixo:

// 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, o arquivo DOCX carregado estará disponível na seção de arquivos do seu painel na nuvem.

Editar documento do Word usando Node.js

Siga as etapas mencionadas abaixo para editar os documentos do Word programaticamente.

  • Crie instâncias de FileAPI e EditAPI
  • Forneça o caminho do arquivo de entrada no FileInfo
  • Criar WordProcessingLoadOptions
  • Criar LoadRequest com LoadOptions
  • Carregue um arquivo com o método load() de EditAPI
  • Criar DownloadFileRequest com arquivo carregado
  • Baixe o documento HTML usando o método downloadFile() da FileAPI
  • Edite o documento HTML baixado
  • Criar UploadFileRequest
  • Carregar HTML de volta usando o método uploadFile() de FileAPI
  • Forneça WordProcessingSaveOptions para salvar no DOCX
  • Criar SaveRequest com SaveOptions
  • Salve o HTML de volta no DOCX usando o método save() da API Edit

O trecho de código a seguir mostra como editar um documento do Word usando uma API REST no Node.js.

// inicialização da API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

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

// definir opções de carga
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// criar solicitação de carga
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

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

// carregar html de volta ao armazenamento
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// salvar html de volta para docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// criar solicitação de salvamento
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Editar documentos do Word usando uma API REST em Node.js

Editar documentos do Word usando uma API REST em Node.js

Baixe o arquivo atualizado

O exemplo de código acima salvará o documento do Word editado (DOCX) na nuvem. Você pode baixá-lo usando o seguinte exemplo de código:

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

// criar solicitação de download de arquivo
let request = new groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", myStorage);

// ⇬ Fazer download do arquivo
let response = await fileApi.downloadFile(request);

// salvar arquivo de imagem no diretório de trabalho
fs.writeFile("C:\\Files\\edited.docx", response, "binary", function (err) { });

Adicionar tabela em documentos do Word usando Node.js

Você pode adicionar uma tabela no documento do Word programaticamente seguindo as etapas mencionadas abaixo:

  • Crie instâncias do FileAPI e do EditAPI
  • Forneça o caminho do arquivo de entrada no FileInfo
  • Criar WordProcessingLoadOptions
  • Criar LoadRequest com LoadOptions
  • Carregue um arquivo com o método load() da EditAPI
  • Criar DownloadFileRequest com arquivo carregado
  • Baixe o documento HTML usando o método downloadFile() da FileAPI
  • Edite o documento HTML baixado and add a table
  • Criar UploadFileRequest
  • Carregar HTML de volta usando o método uploadFile() da FileAPI
  • Forneça WordProcessingSaveOptions para salvar no DOCX
  • Criar SaveRequest com SaveOptions
  • Salve o HTML de volta no DOCX usando o método save() da EditAPI

O trecho de código a seguir mostra como adicionar uma tabela em um documento do Word usando uma API REST no Node.js.

// inicialização da API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

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

// definir opções de carga
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// criar solicitação de carga
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

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

// adicionar tabela
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>");

// carregar html de volta ao armazenamento
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// salvar html de volta para docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// criar solicitação de salvamento
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Adicionar tabela em documentos do Word usando Node.js

Adicionar tabela em documentos do Word usando Node.js

Inserir imagem em documentos do Word usando Node.js

Você pode inserir uma imagem no documento do Word programaticamente seguindo as etapas mencionadas abaixo:

  • Crie instâncias do FileAPI e do EditAPI
  • Forneça o caminho do arquivo de entrada no FileInfo
  • Criar WordProcessingLoadOptions
  • Criar LoadRequest com LoadOptions
  • Carregue um arquivo com o método load() da EditAPI
  • Criar DownloadFileRequest com arquivo carregado
  • Baixe o documento HTML usando o método downloadFile() da FileAPI
  • Edite o documento HTML baixado and insert an image
  • Criar UploadFileRequest
  • Carregar HTML de volta usando o método uploadFile() da FileAPI
  • Forneça WordProcessingSaveOptions para salvar no DOCX
  • Criar SaveRequest com SaveOptions
  • Salve o HTML de volta no DOCX usando o método save() da EditAPI

O trecho de código a seguir mostra como inserir uma imagem em um documento do Word usando uma API REST no Node.js.

// inicialização da API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

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

// definir opções de carga
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// criar solicitação de carga
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

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

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

// carregar html de volta ao armazenamento
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// salvar html de volta para docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// criar solicitação de salvamento
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Inserir imagem em documentos do Word usando Node.js

Inserir imagem em documentos do Word usando Node.js

Experimente on-line

Experimente a seguinte ferramenta de edição DOCX on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/editor/docx

Conclusão

Neste artigo, você aprendeu como editar documentos do Word na nuvem. Você também aprendeu como adicionar uma tabela no arquivo DOCX usando uma API REST no Node.js. Além disso, você aprendeu a inserir uma imagem em um documento do Word programaticamente. Este artigo também explicou como carregar programaticamente um arquivo DOCX na nuvem e, em seguida, baixar o arquivo editado da nuvem. Você pode aprender mais sobre GroupDocs.Editor Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também