如何在 Node.js 中使用 Rest API 从 PDF 文件中提取页面

如何在 Node.js 中使用 Rest API 从 PDF 文件中提取页面

您可能需要以编程方式一次从 PDF 中提取多个页面。通过分离 PDF 页面,您可以轻松导出和保存 PDF 文档的特定页面以与利益相关者共享。作为 Node.js 开发人员,您可以从云端的 PDF 文档中提取多个页面。在本文中,我们将演示如何在 Node.js 中使用 Rest API 从 PDF 文件中提取页面。

本文应涵盖以下主题以从 PDF 中提取页面:

PDF 提取器 REST API 和 Node.js SDK

为了从 Adobe Acrobat PDF 中提取页面,我将使用 GroupDocs.Merger Cloud 的 Node.js SDK API。它是一个在线 PDF 页面提取器免费下载库。它允许您从WordExcelPowerPoint支持的文档格式中拆分、组合、提取、删除和重新排列单个页面或页面集合]、Visio 绘图PDFHTML

您可以在控制台中使用以下命令安装 GroupDocs.Merger cloud 以从 Node.js 应用程序中的 PDF 文件中提取 PDF 页面:

npm install groupdocs-merger-cloud

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

# 从 http://api.groupdocs.cloud 在您的节点应用程序中导入 Node.js SDK
global.groupdocs_merger_cloud = require("groupdocs-merger-cloud");
global.fs = require("fs");

// 从 https://dashboard.groupdocs.cloud 获取 clientId 和 clientSecret(需要免费注册)。
global.clientId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
global.clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
global.myStorage = "test-internal-storage";
const config = new groupdocs_merger_cloud.Configuration(clientId, clientSecret);
config.apiBaseUrl = "https://api.groupdocs.cloud";

在 Node.js 中使用 REST API 按精确页码提取 PDF 页面

您可以通过以下简单步骤以编程方式从 PDF 导出单个页面或从云中的 PDF 文件导出特定页面:

  • 上传PDF文件到云端
  • Extract 在 Node.js 中使用 REST API 的 PDF 页面
  • 下载分离文件

上传 PDF 文件

您可以使用下面给出的代码示例将 PDF 文件导入云端:

// 从系统驱动器打开 IOStream 中的文件。
var resourcesFolder = 'H:\\groupdocs-cloud-data\\input-sample-file.pdf';
// 读取文件
fs.readFile(resourcesFolder, (err, fileStream) => {
  // 构造FileApi
  var fileApi = groupdocs_merger_cloud.FileApi.fromConfig(config);
  // 创建上传文件请求
  var request = new groupdocs_merger_cloud.UploadFileRequest("input-sample-file.pdf", fileStream, myStorage);
  // 上传文件
  fileApi.uploadFile(request)
    .then(function (response) {
      console.log("Expected response type is FilesUploadResult: " + response.uploaded.length);
    })
    .catch(function (error) {
      console.log("Error: " + error.message);
    });
});

当文件上传到云端仪表板的 文件部分 时,PDF 文件将可用。

在 Node.js 中使用 REST API 提取 PDF 页面

以下步骤将教您如何以编程方式从 PDF 文件中提取页面:

  • 首先,创建 PagesApi 的实例。
  • 创建 ExtractOptions 的实例。
  • 创建 FileInfo 的实例。
  • 然后,设置输入 PDF 文件的路径。
  • 接下来,设置提取的 PDF 文件的路径。
  • 在逗号分隔的数组中设置特定页码以提取 PDF 文件。
  • 使用 ExtractOptions 创建 ExtractRequest。
  • 最后,用 ExtractRequest 调用 pagesApi.extract() 方法得到结果。

以下代码片段展示了如何使用 Node.js 中的 REST API 将 PDF 页面提取到单独的文件中:

// 如何在 Node.js 中使用 REST API 按精确页码提取 PDF 页面
const extractpdfpages = async () => {

  // 接口初始化
  global.pagesApi = groupdocs_merger_cloud.PagesApi.fromKeys(clientId, clientSecret);

  // 定义提取选项
  let options = new groupdocs_merger_cloud.ExtractOptions();
  options.fileInfo = new groupdocs_merger_cloud.FileInfo();
  options.fileInfo.filePath = "nodejs-testing/input-sample-file.pdf"; 
  options.outputPath = "nodejs-testing/output-sample-file.pdf"; 
  options.pages = [2, 4, 7];
  
  try {
    // 创建提取请求
    let extractRequest = new groupdocs_merger_cloud.ExtractRequest(options);
    // 从pdf文档中提取页面
    let result = await pagesApi.extract(extractRequest);
  }
  catch (err) {
    throw err;
  }
}

extractpdfpages()
.then(() => {
  console.log("Successfully extract PDF pages: ");
})
.catch((err) => {
  console.log("Error occurred while extracting pages from PDF file:", err);
})

下载提取的文件

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

// 构造FileApi下载合并后的文件
var fileApi = groupdocs_merger_cloud.FileApi.fromConfig(config);
// 创建下载文件请求
let request = new groupdocs_merger_cloud.DownloadFileRequest("nodejs-testing/output-sample-file.pdf", myStorage);
// 下载文件和响应类型 Stream
fileApi.downloadFile(request)
    .then(function (response) {
        // 将文件保存在系统目录中
        fs.writeFile("H:\\groupdocs-cloud-data\\output-sample-file.pdf", response, "binary", function (err) { });
        console.log("Expected response type is Stream: " + response.length);
    })
    .catch(function (error) {
        console.log("Error: " + error.message);
    });

使用 Node.js 中的 REST API 按页面范围从 PDF 中提取页面

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

  • 首先,创建 PagesApi 的实例。
  • 创建 ExtractOptions 的实例。
  • 创建 FileInfo 的实例。
  • 然后,设置输入 PDF 文件的路径。
  • 接下来,设置提取的 PDF 文件的路径。
  • 设置起始页码和结束页码值。
  • 然后,将 rangeMode 设置为 EvenPages 或 OddPages
  • 使用 ExtractOptions 创建 ExtractRequest。
  • 最后,用 ExtractRequest 调用 pagesApi.extract() 方法得到结果。

以下代码片段展示了如何在 Node.js 中使用页面范围和页面模式从 PDF 在线提取页面:

// 如何在 Node.js 中使用 REST API 按页面范围从 PDF 中提取页面
const extractpages = async () => {

  // 接口初始化
  global.pagesApi = groupdocs_merger_cloud.PagesApi.fromKeys(clientId, clientSecret);

  // 定义提取选项
  let options = new groupdocs_merger_cloud.ExtractOptions();
  options.fileInfo = new groupdocs_merger_cloud.FileInfo();
  options.fileInfo.filePath = "nodejs-testing/input-sample-file.pdf"; 
  options.outputPath = "nodejs-testing/output-sample-file.pdf"; 
  options.startPageNumber = 1;
  options.endPageNumber = 10;
  options.rangeMode = groupdocs_merger_cloud.ExtractOptions.RangeModeEnum.EvenPages;
  
  try {
    // 创建提取请求
    let extractRequest = new groupdocs_merger_cloud.ExtractRequest(options);
    // 提取PDF文件页面
    let result = await pagesApi.extract(extractRequest);
  } 
  catch (err) {
    throw err;
  }
}

extractpages()
.then(() => {
  console.log("Successfully extratcing pages of PDF file.");
})
.catch((err) => {
  console.log("Error occurred while extracting pages from PDF file.", err);
})

类似的方法,您可以从 PDF 文档中提取奇数页。

在线试用

如何在线从PDF文件中提取页面?请尝试以下免费在线 PDF 提取工具 以免费在线从 PDF 中提取页面。这个 PDF 页面提取器免费在线工具是使用上述 API 开发的。

结论

我们在这里结束这篇博文。在本文中,您已了解:

  • 如何使用 REST API 从 PDF 中提取特定页面或从 PDF 中提取一页;
  • 如何使用页面范围和范围模式过滤器从 PDF 文档中提取页面;
  • 将PDF文件上传到云端,在线导出PDF中的选定页面;
  • 从云端下载并保存某些 PDF 页面;
  • 如何免费从 PDF 中提取页面;

现在,您知道如何从 PDF 文档中提取一页或如何保存 PDF 的某些页面。 API 还使您能够重新排序或替换文档页面、更改页面方向、管理文档密码以及对任何支持的文件格式轻松执行其他操作。此外,您可以使用 文档 了解有关 GroupDocs.Merge Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。

此外,我们建议您参考我们的入门指南

此外,groupdocs.cloud 定期撰写有关新主题的文章。因此,请保持联系以获取最新更新。

问一个问题

您可以通过我们的 免费支持论坛 询问有关如何提取 PDF 文件以从 PDF 导出选定页面的问题

常见问题

如何将PDF中的多页提取到一个文件中?

安装 JS 库 以编程方式在线将 PDF 文件分成多个页面。您可以访问文档 了解完整的 API 详细信息。

从 PDF 中提取特定页面需要多长时间?

JavaScript HTML 到 PDF 库 运行速度非常快,您可以在几秒钟内轻松地从受保护的 PDF 中提取页面。

也可以看看

如需最佳阅读和信息,请访问以下文章: