在 Node.js 中使用 REST API 拆分 PDF 文档

您可能需要以编程方式将 PDF 文件拆分为多个文件。通过拆分 PDF 文档,您可以轻松提取特定信息或一组数据并与利益相关者共享。作为 Node.js 开发人员,您可以在云端将 PDF 文档拆分为多个文档。在本文中,您将学习如何在 Node.js 中使用 REST API 拆分 PDF 文档。

本文应涵盖以下主题:

PDF 拆分器 REST API 和 Node.js SDK

为了拆分 PDF 文件,我将使用 GroupDocs.Merger Cloud 的 Node.js SDK API。它允许您从 WordExcelPowerPoint支持的文档格式 中拆分、合并、删除和重新排列单个页面或一组页面, Visio 绘图PDFHTML

您可以在控制台中使用以下命令将 GroupDocs.Merger Cloud 安装到您的 Node.js 应用程序:

npm install groupdocs-merger-cloud

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

global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

const configuration = new groupdocs_merger_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

使用 Node.js 中的 REST API 将 PDF 文档拆分为单页文档

您可以按照以下简单步骤在云端以编程方式拆分 PDF 文件:

上传 PDF 文件

首先,使用下面给出的代码示例将 PDF 文件上传到云端:

// 构造FileApi
let fileApi = groupdocs_merger_cloud.FileApi.fromConfig(configuration);
let file = 'C:\\Files\\merger\\ten-pages.pdf';

// 一个一个地读取文件
fs.readFile(file, (err, fileStream) => {
  // 创建上传文件请求
  let request = new groupdocs_merger_cloud.UploadFileRequest("ten-pages.pdf", fileStream, myStorage);
  // 上传文件
  fileApi.uploadFile(request)
});

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

在 Node.js 中使用 REST API 拆分 PDF 文档

您可以按照以下给出的步骤,以编程方式轻松地将任何 PDF 文件的页面拆分为单独的 PDF 文档,其中包含文档中的一页:

  • 创建 DocumentApi 的实例。
  • 创建 FileInfo 的实例。
  • 然后,设置输入 PDF 文件的路径。
  • 创建 SplitOptions 的实例。
  • 然后,将 FileInfo 分配给 SplitOptions。
  • 在逗号分隔数组中设置特定页码以拆分文档。
  • 另外,将文档拆分模式设置为页面。它允许 API 将逗号分隔数组中给出的页码拆分为单独的 PDF 文档。
  • 使用 SplitOptions 创建 SplitRequest。
  • 最后,用 SplitRequest 调用 DocumentAPI.split() 方法并得到结果。

以下代码片段显示了如何在 Node.js 中使用 REST API 拆分 PDF 文件。

// 接口初始化
let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);

// 提供输入文件路径
let fileInfo = new groupdocs_merger_cloud.FileInfo();
fileInfo.filePath = "ten-pages.pdf";

// 定义拆分选项
let options = new groupdocs_merger_cloud.SplitOptions();
options.fileInfo = fileInfo;
options.outputPath = "Output";
options.pages = [1, 3];
options.mode = groupdocs_merger_cloud.SplitOptions.ModeEnum.Pages;

// 创建拆分请求
let splitRequest = new groupdocs_merger_cloud.SplitRequest(options);

// 拆分文档
let result = await documentApi.split(splitRequest);
result.documents.forEach(element => {
  console.log("Document Path: " + element.path);
});
使用 Node.js 将 PDF 文件拆分为单页文档

使用 Node.js 将 PDF 文件拆分为单页文档

下载拆分文件

上面的代码示例会将分离的文件保存在云端。您可以使用以下代码示例下载它们:

// 初始化接口
let fileApi = groupdocs_merger_cloud.FileApi.fromConfig(configuration);
let folderApi = new groupdocs_merger_cloud.FolderApi(configuration);

// 检索文件列表
var listRequest = new groupdocs_merger_cloud.GetFilesListRequest("Output", myStorage);
let res = await folderApi.getFilesList(listRequest);
res.value.forEach(element => {
  // 下载文件
  var request = new groupdocs_merger_cloud.DownloadFileRequest(element.name, myStorage);
  fileApi.downloadFile(request)
    .then(function (response) {
      // 将图像文件保存在工作目录中
      fs.writeFile("C:\\Files\\merger\\downloads\\" + element.name, response, "binary", function (err) { });
      console.log("Expected response type is Stream: " + response.length);
    })
    .catch(function (error) {
      console.log("Error: " + error.message);
    });
});

使用 Node.js 将 PDF 文件拆分为多页 PDF 文档

您可以按照以下步骤以编程方式将 PDF 文件拆分为多页 PDF 文档:

  • 创建 DocumentApi 的实例。
  • 创建 FileInfo 的实例。
  • 然后,设置输入 PDF 文件的路径。
  • 创建 SplitOptions 的实例。
  • 然后,将 FileInfo 分配给 SplitOptions。
  • 在逗号分隔的数组中设置页码间隔。
  • 此外,将文档拆分模式设置为间隔。它允许 API 根据逗号分隔数组中给定的页面间隔拆分文档页面。
  • 使用 SplitOptions 创建 SplitRequest。
  • 最后,用 SplitRequest 调用 DocumentAPI.split() 方法并得到结果。

以下代码片段显示了如何使用 Node.js 中的 REST API 将 PDF 文件拆分为多页 PDF 文档。

// 接口初始化
let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);

// 提供输入文件路径
let fileInfo = new groupdocs_merger_cloud.FileInfo();
fileInfo.filePath = "ten-pages.pdf";

// 定义拆分选项
let options = new groupdocs_merger_cloud.SplitOptions();
options.fileInfo = fileInfo;
options.outputPath = "Output";
options.pages = [3, 6, 8];
options.mode = groupdocs_merger_cloud.SplitOptions.ModeEnum.Intervals;

// 创建拆分请求
let splitRequest = new groupdocs_merger_cloud.SplitRequest(options);

// 拆分文档
let result = await documentApi.split(splitRequest);
result.documents.forEach(element => {
  console.log("Document splitted: " + element.path);
});
使用 Node.js 将 PDF 文件拆分为多页 PDF 文档

使用 Node.js 将 PDF 文件拆分为多页 PDF 文档

在 Node.js 中使用 REST API 按页面范围提取页面

您可以按照以下步骤以编程方式提供一系列页码,从而从 PDF 文件中提取和保存页面:

  • 创建 DocumentApi 的实例。
  • 创建 FileInfo 的实例。
  • 然后,设置输入 PDF 文件的路径。
  • 创建 SplitOptions 的实例。
  • 然后,将 FileInfo 分配给 SplitOptions。
  • 设置起始页码和结束页码。
  • 另外,将文档拆分模式设置为页面。
  • 使用 SplitOptions 创建 SplitRequest。
  • 最后,用 SplitRequest 调用 DocumentAPI.split() 方法并得到结果。

以下代码片段显示了如何使用 Node.js 中的 REST API 按页码范围拆分 PDF 文件。

// 接口初始化
let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);

let fileInfo = new groupdocs_merger_cloud.FileInfo();
fileInfo.filePath = "ten-pages.pdf";

// 定义拆分选项
let options = new groupdocs_merger_cloud.SplitOptions();
options.fileInfo = fileInfo;
options.outputPath = "Output";
options.startPageNumber = 3;
options.endPageNumber = 7;
options.mode = groupdocs_merger_cloud.SplitOptions.ModeEnum.Pages;

// 创建拆分请求
let splitRequest = new groupdocs_merger_cloud.SplitRequest(options);

// 拆分文档
let result = await documentApi.split(splitRequest);
result.documents.forEach(element => {
  console.log("Document splitted: " + element.path);
});
在 Node.js 中使用 REST API 按页面范围提取页面

在 Node.js 中使用 REST API 按页面范围提取页面

在线试用

请试用以下使用上述 API 开发的免费在线 PDF 拆分器工具。 https://products.groupdocs.app/splitter/pdf/

结论

在本文中,您了解了如何在云端使用 REST API 拆分 PDF 文档。此外,您还了解了如何以编程方式将 PDF 文件拆分为多页 PDF 文档。本文还介绍了如何以编程方式将 PDF 文件上传到云端,然后从云端下载分离的文件。 API 还使您能够重新排序或替换文档页面、更改页面方向、管理文档密码以及对任何支持的文件格式轻松执行其他操作。此外,您可以使用 文档 了解有关 GroupDocs.Merge Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看