如何使用 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 詳細信息。

也可以看看

我們建議您閱讀以下文章以了解更多信息: