如何在 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 中提取頁面。

也可以看看

如需最佳閱讀和信息,請訪問以下文章: