使用 Node.js 從 PDF 文件中提取圖像

PDF 文檔按原樣保留包括圖像和文本在內的內容。在某些情況下,我們可能需要從 PDF acrobat 文件中提取圖像以重新使用它們。我們可以在雲端以編程方式輕鬆提取嵌入 PDF 文檔的特定頁面中的所有圖像或圖像。在本文中,我們將學習如何在 Node.js 中使用 REST API 從 PDF 文件中提取圖像。

在本文中從 pdf 中提取照片應涵蓋以下主題:

圖像提取器 REST API 和 Node.js SDK

為了從 PDF 文檔中提取圖像,我們將使用 GroupDocs.Parser Cloud 的 Node.js SDK API。它允許通過模板從所有流行文檔格式 中提取文本、圖像和數據解析。請在控制台中使用以下命令安裝它:

npm install groupdocs-parser-cloud

在執行上述步驟之前,請從儀表板獲取您的客戶端 ID 和密碼。獲得 ID 和密碼後,添加如下所示的代碼:

// 此代碼示例演示如何在代碼中添加您的客戶端 ID 和密碼。
global.clientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
global.clientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
global.myStorage = "";

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

在 Node.js 中使用 REST API 從 PDF 中提取圖像

我們可以按照下面提到的簡單步驟從 PDF 文檔中提取圖像:

上傳文件

首先,我們將使用下面給出的代碼示例將包含圖像的 PDF 文檔上傳到雲端:

// 此代碼示例演示如何在 node.js 中將 PDF 上傳到雲端 
// 構造FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// 輸入文件路徑
let resourcesFolder = 'C:\\Files\\Parser\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // 上傳文件請求
  let request = new groupdocs_parser_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // 上傳文件
  fileApi.uploadFile(request);
});

因此,上傳的 PDF 文件將在雲端儀表板的 文件部分 中可用。此文件可用於從 pdf 中提取圖像。

從 Node.js 中的 PDF 文件中提取所有圖像

現在,我們將按照以下步驟以編程方式從上傳的 PDF 文件中提取所有圖像:

  • 首先,創建一個 ParseApi 實例。
  • 接下來,提供上傳的 PDF 文件路徑。
  • 然後,定義 ImageOptions 並分配文件。
  • 之後,創建帶有 ImageOptions 作為參數的 ImagesRequest。
  • 最後,通過調用 images() 方法提取圖像。

以下代碼示例展示瞭如何使用 Node.js 中的 REST API 從 PDF 文件中提取所有圖像。

// 此代碼示例演示瞭如何在 Node.js 中從 PDF 中提取所有圖像。
//接口初始化
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// 輸入文件路徑
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// 定義圖像選項
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// 圖片請求
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// 提取圖像
let result = await parseApi.images(request);

// 顯示結果
let images = result.images;
images.forEach(image => {
  console.log("Image path in storage: " + image.path);
  console.log("Download url: " + image.downloadUrl);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});
在 Node.js 中使用 REST API 從 PDF 中提取圖像

在 Node.js 中使用 REST API 從 PDF 中提取圖像

下載提取的圖像

上面的代碼示例會將提取的圖像保存在雲端。我們可以使用下面給出的代碼示例下載這些圖像:

// 此代碼示例演示如何使用 Node.js 從雲端下載圖像
// 構建必要的 api 實例
var folderApi = groupdocs_parser_cloud.FolderApi.fromConfig(configuration);
var fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// 獲取文件列表請求
var filesListRequest = new groupdocs_parser_cloud.GetFilesListRequest("parser/images/sample_pdf/", myStorage);

// 獲取文件列表
var filesList = await folderApi.getFilesList(filesListRequest);

for (var count = 0; count < filesList.value.length; count++) {
  // 下載文件請求
  let request = new groupdocs_parser_cloud.DownloadFileRequest(filesList.value[count].path, myStorage);

  // 下載文件
  let response = await fileApi.downloadFile(request);

  // 將文件保存到磁盤上的文件夾
  fs.writeFile("C:\\Files\\parser\\images\\" + filesList.value[count].name, response, "binary", function (err) { });
  console.log(response);
}

這是如何從 pdf 文件導出圖像,然後從雲端下載它。

在 Node.js 中按頁碼從 PDF 文檔保存圖像

我們可以按照下面給出的步驟從 PDF 特定頁面而不是整個文檔導出圖像。

  • 首先,創建一個 ParseApi 實例。
  • 接下來,提供上傳的 PDF 文件路徑。
  • 然後,定義 ImageOptions 並分配文件。
  • 設置起始頁碼和從中提取圖像的總頁數。
  • 之後,創建帶有 ImageOptions 作為參數的 ImagesRequest。
  • 最後,通過調用 images() 方法提取圖像。

以下代碼示例顯示瞭如何使用 Node.js 中的 REST API 從 PDF 文檔中按頁碼從 pdf 文件中提取圖片。請按照前面提到的步驟下載提取的圖像。

// 此代碼示例演示瞭如何在 Node.js 中從 PDF 的特定頁面中提取圖像。
//接口初始化
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// 輸入文件路徑
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// 定義圖像選項
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;
options.startPageNumber = 1;      // Start page number
options.countPagesToExtract = 1;  // Total pages

// 圖片請求
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// 提取圖像
let result = await parseApi.images(request);

// 顯示結果
let pages = result.pages;
pages.forEach(page => {
  console.log("Page index: " + page.pageIndex);
  page.images.forEach(image => {
    console.log("Download url: " + image.downloadUrl);
    console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
  });
});

在 Node.js 中從 PDF 附件中提取圖像

我們還可以按照以下步驟從容器內的文檔中提取圖像,作為 PDF 文件的附件。

  • 首先,創建一個 ParseApi 實例。
  • 接下來,提供上傳的 PDF 文件路徑。
  • 然後,定義 ImageOptions 並分配文件。
  • 接下來,定義 ContainerItemInfo 並提供內部文檔的相對路徑。
  • 之後,創建帶有 ImageOptions 作為參數的 ImagesRequest。
  • 最後,通過調用 images() 方法提取圖像。

以下代碼示例展示瞭如何使用 Node.js 中的 REST API 從 PDF 文檔中的文檔中提取圖像。請按照前面提到的步驟下載提取的圖像。

// 此代碼示例演示瞭如何在 Node.js 中從 PDF 附件中的文檔中提取圖像。
// 接口初始化
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// 輸入文件路徑
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "PDF_with_Attachment.pdf";
fileInfo.password = "password";

// 定義圖像選項
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// 容器項目
options.ContainerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
options.ContainerItemInfo.relativePath = "template-document.pdf";

// 圖片請求
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// 提取圖像
let result = await parseApi.images(request);

// 顯示結果
let images = result.images;
images.forEach(image => {
  console.log("Image path: " + image.path);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});

在線試用

如何從pdf中免費提取圖像?請嘗試使用以下免費在線PDF解析工具在線提取pdf圖像,該工具是使用上述API開發的。 https://products.groupdocs.app/parser/pdf

結論

在本文中,我們學習瞭如何:

  • 在雲端使用 Node.js 從 PDF 文件中提取圖像;
  • 以編程方式將 PDF 文件上傳到雲端;
  • 從雲端下載提取的圖像。

此外,您可以使用 文檔 了解有關 GroupDocs.Parser Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看