如何使用 Node.js 在线合并 PDF 文件

使用 Node.js 在线合并 PDF 文件

有时我们可能需要合并两个或多个 PDF 文件以制作一个更完整的文件。例如,您需要合并 PDF 文件以使用您之前创建的数据引用文件创建文档,或者当不同的用户正在处理同一主题时。合并 PDF 文件可帮助您保持信息的一致性并使您的文档更有效率。手动复制和粘贴内容或从其他文档导入内容以合并文档可能很繁琐。因此,我们将学习如何使用 Node.js REST API 在线将 PDF 文件组合和合并为一个文件。

本文将涵盖以下主题。

在线文档合并 REST API 和 Node.js SDK

要合并多个 PDF 文件,我将使用 GroupDocs.Merger Cloud 的 Node.js SDK API。它允许您从 支持的文档格式(例如 Word、Excel、PowerPoint, Visio 绘图、PDF 和 HTML 等)中组合、提取、删除和重新排列单个页面或一组页面。

控制台中的以下命令将为您的 Node.js 应用程序启用 GroupDocs.Merger 云:

npm install groupdocs-merger-cloud

在执行上述步骤之前,请从 dashboard 获取您的 Client ID 和 Secret。获得 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 将 PDF 文件合并并合并为一个文件

在本节中,我们将学习如何通过以下简单步骤在云端以编程方式将多个 PDF 文件合并为一个文件:

  • 上传PDF文件到云端
  • 合并 使用 Node.js 的多个 PDF 文件
  • 下载合并后的PDF文档

上传 PDF 文件

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

// 构建FileApi
let fileApi = groupdocs_merger_cloud.FileApi.fromConfig(config);
// 从系统驱动器打开 IOStream 中的文件。
let resourcesFolder = 'H:\\groupdocs-cloud-data\\sample-pdf\\';

fs.readdir(resourcesFolder, (err, files) => {
  files.forEach(file => {
    // 一个一个地读取文件
    fs.readFile(resourcesFolder + file, (err, fileStream) => {
      // 创建上传文件请求
      let request = new groupdocs_merger_cloud.UploadFileRequest("nodejs-testing/" + file, fileStream, myStorage);
      // 上传文件
      fileApi.uploadFile(request)
        .then(function (response) {
          console.log(file + " file uploaded: " + response.uploaded.length);
        })
        .catch(function (error) {
          console.log("Error: " + error.message);
        });
    });
  });
});

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

使用 Node.js 在线将多个 PDF 合并为一个

接下来,按照以下步骤以编程方式将多个 PDF 文件合并为一个文件:

  • 创建 DocumentApi 的实例
  • 现在,创建第一个 JoinItem
  • 接下来,创建第一项FileInfo
  • 为文件信息中的第一个加入项提供输入文件路径
  • 创建第二个 JoinItem
  • 创建第二项FileInfo
  • 为 FileInfo 中的第二个 JoinItem 提供输入文件路径
  • 创建多个文件 JoinOptions
  • 添加逗号分隔的已创建连接项列表
  • 设置输出文件路径
  • 使用 JoinOptions 作为参数创建 JoinRequest
  • 最后调用DocumentAPI的join()方法获取结果

以下代码片段展示了如何在 Node.js 中使用 REST API 合并多个 PDF 文件:

// 如何使用 Node.js 将 PDF 文件合并和合并为一个文件
const combine = async () => {

let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);

// 创建第一个连接项
let item1 = new groupdocs_merger_cloud.JoinItem();
item1.fileInfo = new groupdocs_merger_cloud.FileInfo();
item1.fileInfo.filePath = "nodejs-testing/sample-file1.pdf";

// 创建第二个连接项
let item2 = new groupdocs_merger_cloud.JoinItem();
item2.fileInfo = new groupdocs_merger_cloud.FileInfo();
item2.fileInfo.filePath = "nodejs-testing/sample-file2.pdf";

// 创建连接选项
let options = new groupdocs_merger_cloud.JoinOptions();
options.joinItems = [item1, item2];
options.outputPath = "nodejs-testing/joined-file.pdf";

  try {
    // 创建加入文档请求
    let joinRequest = new groupdocs_merger_cloud.JoinRequest(options);
    let result = await documentApi.join(joinRequest);
  } 
  catch (err) {
    throw err;
  }
}

combine()
.then(() => {
  console.log("Successfully combined PDF documents: ");
})
.catch((err) => {
  console.log("Error occurred while merging the PDF files:", err);
})

下载合并 PDF 文件

合并后的 PDF 文件将使用上面的代码片段保存在云端。您可以使用以下代码示例下载它:

// 构造FileApi下载合并后的文件
var fileApi = groupdocs_merger_cloud.FileApi.fromConfig(config);
// 创建下载文件请求
let request = new groupdocs_merger_cloud.DownloadFileRequest("nodejs-testing/joined-file.pdf", myStorage);
// 下载文件和响应类型 Stream
fileApi.downloadFile(request)
    .then(function (response) {
        // 将文件保存在系统目录中
        fs.writeFile("H:\\groupdocs-cloud-data\\joined-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 中合并多个 PDF 文件页面

您可以按照以下步骤以编程方式将多个 PDF 文件的特定幻灯片快速合并到一个文件中:

  • 首先,创建 DocumentApi 的实例
  • 接下来,创建第一个 JoinItem
  • 现在,创建第一个项目 FileInfo
  • 为 FileInfo 中的第一个 JoinItem 设置输入文件路径
  • 提供以逗号分隔的要合并的页面列表
  • 创建第二个 JoinItem
  • 创建第二项FileInfo
  • 为 FileInfo 中的第二个 JoinItem 设置输入文件路径
  • 现在,设置 startPageNumber 值
  • 接下来,设置 endPageNumber 值
  • 创建多个文件 JoinOptions
  • 添加逗号分隔的已创建连接项列表
  • 设置输出文件路径
  • 使用 JoinOptions 作为参数创建 JoinRequest
  • 通过调用 DocumentAPI 的 join() 方法获取结果

以下代码片段展示了如何在 Node.js 中使用 REST API 合并特定的 PDF 文件:

// 如何在 Node.js 中合并多个 PDF 文件页面
const mergespecific = async () => {

  // 合并 PDFs api 初始化
  let documentApi = groupdocs_merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);

  // 创建第一个连接项
  let item1 = new groupdocs_merger_cloud.JoinItem();
  item1.fileInfo = new groupdocs_merger_cloud.FileInfo();
  item1.fileInfo.filePath = "nodejs-testing/sample-file1.pdf";
  item1.pages = [1, 3];

  // 创建第二个连接项
  let item2 = new groupdocs_merger_cloud.JoinItem();
  item2.fileInfo = new groupdocs_merger_cloud.FileInfo();
  item2.fileInfo.filePath = "nodejs-testing/sample-file2.pdf";
  item2.startPageNumber = 2
  item2.endPageNumber = 4

  // 创建连接选项
  let options = new groupdocs_merger_cloud.JoinOptions();
  options.joinItems = [item1, item2];
  options.outputPath = "nodejs-testing/joined-file.pdf";

  try {
    // 创建加入文档请求
    let joinRequest = new groupdocs_merger_cloud.JoinRequest(options);
    let result = await documentApi.join(joinRequest);
  } 
  catch (err) {
    throw err;
  }
}

mergespecific()
.then(() => {
  console.log("Successfully merged PDF documents specific pages: ");
})
.catch((err) => {
  console.log("Error occurred while combining the PDF files:", err);
})

将 PDF 文件合并为一个在线免费

请试用以下免费在线PDF合并工具,它是使用上述API开发的。

结论

在本文中,您已了解:

  • 如何使用 Node.js 将多个 PDF 文件合并为一个 PDF;
  • 如何使用 REST API 在 Node.js 中合并特定页面的 PDF 文件;
  • 以编程方式上传 PDF 文件并从云端下载合并的 PDF 文件;

API 还使您能够重新排序或替换文档页面、更改页面方向、管理文档密码以及对任何支持的文件格式轻松执行其他操作。它还提供 .NET、Java、PHP、Ruby、Android 和 Python SDK 作为 Cloud API 的文档合并系列成员。您可以使用 文档 了解有关 GroupDocs.Merge Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。

我们还建议您阅读我们的入门指南

此外,groupdocs.cloud 撰写了关于新主题的其他博客文章。请注意最新更新。

问一个问题

您可以通过我们的免费支持论坛 询问有关如何合并 PDF 文件的问题

常见问题

如何使用 Node.js 将多个页面合并为一个 PDF?

请跟随 Node.js 代码 了解如何在 windows 中快速轻松地合并 PDF 文件。您可以访问文档 了解完整的 API 详细信息。

也可以看看

我们建议您阅读以下文章以了解更多信息: