PDF 文檔按原樣保留包括圖像和文本在內的內容。在某些情況下,我們可能需要從 PDF acrobat 文件中提取圖像以重新使用它們。我們可以在雲端以編程方式輕鬆提取嵌入 PDF 文檔的特定頁面中的所有圖像或圖像。在本文中,我們將學習如何在 Node.js 中使用 REST API 從 PDF 文件中提取圖像。
在本文中從 pdf 中提取照片應涵蓋以下主題:
- 圖像提取器 REST API 和 Node.js SDK
- 在 Node.js 中使用 REST API 從 PDF 中提取圖像
- 在 Node.js 中按頁碼從 PDF 文檔保存圖像
- 在 Node.js 中從 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文件到雲端
- 從 PDF 文件中提取圖像
- 下載the extracted images
上傳文件
首先,我們將使用下面給出的代碼示例將包含圖像的 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 從雲端下載圖像
// 構建必要的 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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。