使用 Node.js 接受或拒绝 Word 中的修订

Microsoft Word 提供了一个内置功能来跟踪更改并保留 Word 文档中的修订。但是,我们可能会以编程方式在云端接受或拒绝 Word 文档(DOCDOCX)的修订。在本文中,我们将学习如何使用 Node.js 中的 REST API 接受或拒绝 Word 文档中的修订。

本文应涵盖以下主题:

用于接受或拒绝更改的 REST API 和 Node.js SDK

为了接受或拒绝 Word 文档中的跟踪更改,我们将使用 GroupDocs.Comparison Cloud 的 Node.js SDK API。它允许比较支持的格式 的两个或多个文档并跟踪它们的更改。请在控制台中使用以下命令安装它:

npm install groupdocs-comparison-cloud

在执行上述步骤之前,请从仪表板获取您的客户端 ID 和密码。获得 ID 和密码后,添加如下所示的代码:

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

在 Node.js 中使用 REST API 接受或拒绝跟踪更改

我们可以按照下面给出的简单步骤接受或拒绝 Word 文档中的特定修订:

  1. 上传DOCX文件到云端
  2. 接受或拒绝 Word 文档中的更改
  3. 下载输出文件

上传文件

首先,我们将使用下面给出的代码示例将修改后的 Word 文档上传到云端:

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

// 输入文件路径
let file = 'C:\\Files\\source_with_revisions.docx';

// 读取文件
fs.readFile(file, (err, fileStream) => {
  // 创建上传文件请求
  let request = new groupdocs_comparison_cloud.UploadFileRequest("source_with_revisions.docx", fileStream, myStorage);
  // 上传文件
  fileApi.uploadFile(request);
});

因此,上传的 DOCX 文件将在云端仪表盘的 文件部分 中可用。

接受或拒绝 Word 文档中的更改

现在,我们将按照以下步骤以编程方式接受或拒绝跟踪的更改:

  • 首先,创建 ReviewApi 的实例。
  • 接下来,提供上传的 DOCX 文件路径。
  • 然后,获取修订并循环接受或拒绝所需的修订。
  • 最后,应用修订并将更新后的文件保存为“output.docx”。

以下代码示例展示了如何在 Node.js 中使用 REST API 接受 Word 文档中的修订。

// 创建 API 实例
let reviewApi = groupdocs_comparison_cloud.ReviewApi.fromKeys(clientId, clientSecret);

// 输入源文件
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source_with_revisions.docx";

// 定义应用修订选项
let options = new groupdocs_comparison_cloud.ApplyRevisionsOptions();
options.sourceFile = source;
options.outputPath = "output.docx";

// 创建获取修订请求
let request = new groupdocs_comparison_cloud.GetRevisionsRequest(source);

// 获取所有修订
let revisions = await reviewApi.getRevisions(request);

// 接受或拒绝修订
revisions.forEach(revision => {
  revision.action = groupdocs_comparison_cloud.RevisionInfo.ActionEnum.Accept;
});

options.revisions = revisions;

// 创建应用修订请求
let applyRequest = new groupdocs_comparison_cloud.ApplyRevisionsRequest(options);

// 应用修订
let response = await reviewApi.applyRevisions(applyRequest);
console.log("Output file link: " + response.href);
在 Node.js 中使用 REST API 接受或拒绝跟踪更改

在 Node.js 中使用 REST API 接受或拒绝跟踪更改

同样,我们可以按照前面提到的步骤拒绝任何更改。但是,我们只需要应用以下修订选项:

revisions.forEach(revision => {
	revision.action = groupdocs_comparison_cloud.RevisionInfo.ActionEnum.Reject;
});

下载结果文件

因此,上述代码示例将在云端保存一个新创建的包含更改的 DOCX 文件。可以使用以下代码示例下载它:

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

// 创建下载文件请求
let request = new groupdocs_comparison_cloud.DownloadFileRequest("output.docx", myStorage);

// 下载文件
let response = await fileApi.downloadFile(request);

// 保存在工作目录
fs.writeFile("C:\\Files\\output.docx", response, "binary", function (err) { });

接受或拒绝 Node.js 中的所有更改

我们可以按照以下步骤一次性接受或拒绝所有更改:

  • 首先,创建 ReviewApi 的实例。
  • 接下来,提供上传的 DOCX 文件路径。
  • 然后,获取修订并接受或拒绝所有修订。
  • 最后,应用修订并将更新后的文件保存为“output.docx”。

以下代码示例展示了如何使用 REST API 接受所有更改。请按照前面提到的步骤上传和下载文件。

// 创建 API 实例
let reviewApi = groupdocs_comparison_cloud.ReviewApi.fromKeys(clientId, clientSecret);

// 输入源文件
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source_with_revisions.docx";

// 定义应用修订选项
let options = new groupdocs_comparison_cloud.ApplyRevisionsOptions();
options.sourceFile = source;
options.outputPath = "output.docx";

// 接受所有修订
options.acceptAll = true;

// 拒绝所有修改
// options.rejectAll = true;	

// 创建应用修订请求
let request = new groupdocs_comparison_cloud.ApplyRevisionsRequest(options);

// 应用修订
let response = await reviewApi.applyRevisions(request);
console.log("Output file link: " + response.href);

在线试用

请试用以下使用上述API开发的免费在线DOCX比较工具。 https://products.groupdocs.app/comparison/docx

结论

在本文中,我们了解了如何使用云上的 REST API 接受或拒绝 Word 文档中的跟踪更改。我们还看到了如何以编程方式一次性接受或拒绝所有修订。本文还介绍了如何以编程方式将 DOCX 文件上传到云端,然后从云端下载生成的文件。此外,您可以使用 文档 了解有关 GroupDocs.Comparison Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看