Редактировать документы Word с помощью REST API в Node.js

Вы можете легко программно редактировать документы Word в облаке. Вы можете добавлять, редактировать содержимое документов или программно применять форматирование текста в документах Word в своих приложениях Node.js. В этой статье основное внимание будет уделено тому, как редактировать документы Word с помощью REST API в Node.js.

В этой статье должны быть раскрыты следующие темы:

REST API редактора документов и Node.js SDK

Я буду использовать API Node.js SDK для GroupDocs.Editor Cloud для редактирования файлов DOCX. Он позволяет программно редактировать документы поддерживаемых форматов, таких как Word, электронные таблицы Excel, PowerPoint, TXT, HTML, XML. API также позволяет преобразовывать документ в HTML для редактирования и преобразовывать его обратно в исходный формат, сохраняя тот же внешний вид после редактирования документа. Он также предоставляет SDK для .NET, Java, PHP, Ruby, Android и Python в качестве членов семейства редакторов документов для Cloud API.

Вы можете установить GroupDocs.Editor Cloud в свое приложение Node.js с помощью следующей команды в консоли:

npm install groupdocs-editor-cloud

Прежде чем выполнять указанные шаги, получите свой идентификатор клиента и секрет на панели управления. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

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

Редактировать документы Word с помощью REST API в Node.js

Вы можете редактировать документы Word, выполнив простые шаги, указанные ниже:

  1. Загрузить файл Word в облако
  2. Изменить Документ Word с использованием Node.js
  3. Скачать обновленный файл

Загрузить документ

Во-первых, загрузите документ Word (DOCX) в облако, используя приведенный ниже пример кода:

// построить 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);
});

В результате загруженный файл DOCX будет доступен в разделе файлов вашей панели управления в облаке.

Редактировать документ Word с помощью Node.js

Пожалуйста, следуйте шагам, указанным ниже, чтобы программно редактировать документы Word.

  • Создайте экземпляры FileAPI и EditAPI
  • Укажите путь к входному файлу в FileInfo.
  • Создать WordProcessingLoadOptions
  • Создайте LoadRequest с помощью LoadOptions
  • Загрузите файл с помощью метода load() EditAPI.
  • Создать DownloadFileRequest с загруженным файлом
  • Загрузите HTML-документ, используя метод downloadFile() FileAPI.
  • Отредактируйте загруженный HTML-документ
  • Создать запрос UploadFileRequest
  • Загрузите HTML обратно, используя метод uploadFile() FileAPI
  • Укажите WordProcessingSaveOptions для сохранения в формате DOCX.
  • Создайте SaveRequest с помощью SaveOptions
  • Сохраните HTML обратно в DOCX, используя метод save() API редактирования.

В следующем фрагменте кода показано, как редактировать документ Word с помощью REST API в Node.js.

// инициализация API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// входной файл      
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// определить параметры загрузки
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// создать запрос на загрузку
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// скачать html-документ
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// отредактируйте что-нибудь...
htmlString = htmlString.replace("Title of the document", "Welcome");
htmlString = htmlString.replace("Subtitle #1", "Hello world");

// загрузить html обратно в хранилище
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// сохранить html обратно в docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// создать запрос на сохранение
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Редактировать документы Word с помощью REST API в Node.js

Редактировать документы Word с помощью REST API в Node.js

Загрузите обновленный файл

Приведенный выше пример кода сохранит отредактированный документ Word (DOCX) в облаке. Вы можете загрузить его, используя следующий пример кода:

// инициализировать API
var fileApi = groupdocs_editor_cloud.FileApi.fromConfig(configuration);

// создать запрос на скачивание файла
let request = new groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", myStorage);

// Загрузка файла
let response = await fileApi.downloadFile(request);

// сохранить файл изображения в рабочем каталоге
fs.writeFile("C:\\Files\\edited.docx", response, "binary", function (err) { });

Добавить таблицу в документы Word с помощью Node.js

Вы можете добавить таблицу в документ Word программно, выполнив шаги, указанные ниже:

  • Создайте экземпляры FileAPI и EditAPI
  • Укажите путь к входному файлу в FileInfo.
  • Создать WordProcessingLoadOptions
  • Создайте LoadRequest с помощью LoadOptions
  • Загрузите файл с помощью метода load() EditAPI.
  • Создать DownloadFileRequest с загруженным файлом
  • Загрузите HTML-документ с помощью метода downloadFile() FileAPI.
  • Отредактируйте загруженный HTML-документ and add a table
  • Создать запрос UploadFileRequest
  • Загрузите HTML обратно, используя метод uploadFile() FileAPI.
  • Укажите WordProcessingSaveOptions для сохранения в формате DOCX.
  • Создайте SaveRequest с помощью SaveOptions
  • Сохраните HTML обратно в DOCX, используя метод save() EditAPI.

В следующем фрагменте кода показано, как добавить таблицу в документ Word с помощью REST API в Node.js.

// инициализация API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// входной файл      
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// определить параметры загрузки
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// создать запрос на загрузку
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// скачать html-документ
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// добавить таблицу
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>");

// загрузить html обратно в хранилище
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// сохранить html обратно в docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// создать запрос на сохранение
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Добавить таблицу в документы Word с помощью Node.js

Добавить таблицу в документы Word с помощью Node.js

Вставка изображения в документы Word с помощью Node.js

Вы можете программно вставить изображение в документ Word, выполнив шаги, указанные ниже:

  • Создайте экземпляры FileAPI и EditAPI
  • Укажите путь к входному файлу в FileInfo.
  • Создать WordProcessingLoadOptions
  • Создайте LoadRequest с помощью LoadOptions
  • Загрузите файл с помощью метода load() EditAPI.
  • Создать DownloadFileRequest с загруженным файлом
  • Загрузите HTML-документ с помощью метода downloadFile() FileAPI.
  • Отредактируйте загруженный HTML-документ and insert an image
  • Создать запрос UploadFileRequest
  • Загрузите HTML обратно, используя метод uploadFile() FileAPI.
  • Укажите WordProcessingSaveOptions для сохранения в формате DOCX.
  • Создайте SaveRequest с помощью SaveOptions
  • Сохраните HTML обратно в DOCX, используя метод save() EditAPI.

В следующем фрагменте кода показано, как вставить изображение в документ Word с помощью REST API в Node.js.

// инициализация API
let editApi = groupdocs_editor_cloud.EditApi.fromKeys(clientId, clientSecret);
let fileApi = groupdocs_editor_cloud.FileApi.fromKeys(clientId, clientSecret);

// входной файл   
let fileInfo = new groupdocs_editor_cloud.FileInfo();
fileInfo.filePath = "Sample.docx";

// определить параметры загрузки
let loadOptions = new groupdocs_editor_cloud.WordProcessingLoadOptions();
loadOptions.fileInfo = fileInfo;
loadOptions.outputPath = "output";

// создать запрос на загрузку
let loadRequest = new groupdocs_editor_cloud.LoadRequest(loadOptions);
let loadResult = await editApi.load(loadRequest);

// скачать html-документ
let downloadRequest = new groupdocs_editor_cloud.DownloadFileRequest(loadResult.htmlPath);
let buf = await fileApi.downloadFile(downloadRequest);
let htmlString = buf.toString("utf-8");

// вставить изображение
htmlString = htmlString.replace("left-aligned.", "left-aligned. <br/> <img src=\"sample.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">");

// загрузить html обратно в хранилище
let uploadRequest = new groupdocs_editor_cloud.UploadFileRequest(loadResult.htmlPath, new Buffer.from(htmlString, "utf-8"));
await fileApi.uploadFile(uploadRequest);

// сохранить html обратно в docx
let saveOptions = new groupdocs_editor_cloud.WordProcessingSaveOptions();
saveOptions.fileInfo = fileInfo;
saveOptions.outputPath = "output/edited.docx";
saveOptions.htmlPath = loadResult.htmlPath;
saveOptions.resourcesPath = loadResult.resourcesPath;

// создать запрос на сохранение
let saveRequest = new groupdocs_editor_cloud.SaveRequest(saveOptions);
let saveResult = await editApi.save(saveRequest);
console.log("Document edited: " + saveResult.path);
Вставка изображения в документы Word с помощью Node.js

Вставка изображения в документы Word с помощью Node.js

Попробуйте онлайн

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент для редактирования DOCX, разработанный с использованием вышеуказанного API. https://products.groupdocs.app/editor/docx

Заключение

В этой статье вы узнали, как редактировать документы Word в облаке. Вы также узнали, как добавить таблицу в файл DOCX с помощью REST API в Node.js. Более того, вы научились программно вставлять изображение в документ Word. В этой статье также объясняется, как программно загрузить файл DOCX в облако, а затем загрузить отредактированный файл из облака. Вы можете узнать больше о GroupDocs.Editor Cloud API, используя документацию. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также