跳過到頁腳內容
PDF工具

如何在NodeJS中將PDF轉換為圖像

將 PDF 文件轉換為 PNG、JPG、GIF 等影像格式,在從文件管理系統到影像處理軟體等各種應用中都是一項很有價值的功能。 本文將介紹如何使用Node.js將PDF檔案轉換為影像檔。 我們將利用名為pdf-poppler的流行 npm(Node 套件管理器)套件的功能來實現這一目標。

先決條件

首先,請確保您的電腦上已安裝 Node.js 和npm (Node 套件管理器)。您可以透過在命令提示字元 (cmd) 中執行以下命令來檢查 Node 的安裝情況:

node --version
npm --version
node --version
npm --version
SHELL

如果尚未安裝,您需要從 Node.js 網站下載

如何在NodeJS中將PDF轉換為圖像:圖1 - Node.js模組

設定專案

首先,為你的專案建立一個新目錄。 在本教學中,我們將此目錄命名為NodeJS_PDFtoImage。接下來,在命令提示字元中導航到該目錄,並透過執行以下命令初始化一個新的 Node.js 專案:

npm init -y
npm init -y
SHELL

執行上述命令將產生一個package.json文件,我們可以使用該文件安裝專案所需的依賴項。

安裝依賴項

我們將使用的依賴項是pdf-poppler ,這是一個提供易於使用的 API 的軟體包,用於將 PDF 轉換為圖像。

在 Windows PowerShell 或命令提示字元中執行下列命令進行安裝:

npm install pdf-poppler
npm install pdf-poppler
SHELL

全部完成! 讓我們編寫將 PDF 轉換為圖像的邏輯。

將 PDF 文件轉換為圖像文件

安裝完成後,在專案根目錄中建立一個新文件,並將其命名為pdfToImage.js 。 用你喜歡的文本編輯器打開文件,並添加所需的模組:

const pdfPoppler = require('pdf-poppler');

下面顯示的是一個 28 頁的 PDF 文件範例。

如何在NodeJS中將PDF轉換為圖像:圖2 - 輸入文件

接下來,定義一個名為convertPdfToImage函數,該函數接受 PDF 檔案的路徑 ( pdfPath ) 和輸出目錄路徑 ( outputPath )。 此函數會將我們的範例 PDF 文件轉換為影像。

async function convertPdfToImage(pdfPath, outputPath) {
  const options = {
    format: 'jpeg',  // You can choose other formats like png or tiff
    out_dir: outputPath,
    out_prefix: 'page',
    page: null  // Specify the page number here to convert a specific page, otherwise null to convert all pages
  };

  try {
    await pdfPoppler.convert(pdfPath, options);
    console.log('PDF converted to image successfully!');
  } catch (error) {
    console.error('Error converting PDF to image:', error);
  }
}

該函數使用pdf-poppler套件將 PDF 轉換為 JPEG 影像格式。 在這種情況下,我們將format選項設為"jpeg",但您可以選擇其他格式,例如"png"或"tiff"。 out_dir選項指定輸出影像的儲存目錄, out_prefix設定輸出影像檔案的前綴。 page選項可讓您指定要轉換的特定頁面,或者您可以將其留空以轉換所有頁面。

若要將 PDF 檔案轉換為映像,可以使用適當的檔案路徑呼叫convertPdfToImage函數。 舉例來說

const pdfPath = '/path/to/input.pdf';
const outputPath = '/path/to/output/folder';

convertPdfToImage(pdfPath, outputPath);

注意:pdfPath"/path/to/input.pdf"替換為輸入 PDF 檔案的實際路徑,將"/path/to/output/folder"替換為所需的輸出目錄路徑。

完整的程式碼如下:

const pdfPoppler = require('pdf-poppler');

const pdfPath = 'C:\\Users\\hp\\Desktop\\NodeJS_PDFtoImage\\pdf_files\\input.pdf';
const outputDir = 'C:\\Users\\hp\\Desktop\\NodeJS_PDFtoImage\\pdf_images';

async function convertPdfToImage(pdfPath, outputPath) {
  const opts = {
    format: 'jpeg',      // You can choose other formats like png or tiff
    out_dir: outputPath,
    out_prefix: 'page',
    page: null           // Specify the page number here to convert a specific page, otherwise null to convert all pages
  };

  try {
    await pdfPoppler.convert(pdfPath, opts);
    console.log('PDF converted to image successfully!');
  } catch (error) {
    console.error('Error converting PDF to image:', error);
  }
}

convertPdfToImage(pdfPath, outputDir);

執行 Node.js 腳本

執行以下命令運行Node.js腳本:

node pdfToImage.js
node pdfToImage.js
SHELL

這將運行Node.js腳本並使用pdf-poppler將PDF轉換為圖像檔案。

如何在NodeJS中將PDF轉換為圖像:圖3 - Node.js腳本

輸出資料夾

如何在NodeJS中將PDF轉換為圖像:圖4 - 輸出

在 C# 中將 PDF 文件柵格化為圖像

IronPDF for C# .NET

IronPDF是一個功能強大的 .NET 程式庫,它允許 C# 開發人員即時處理 PDF 文件。 它提供了在 C# 中建立、操作和轉換 PDF 文件的全面功能。

IronPDF 提供了一種使用 C# 將 PDF 文件轉換為影像檔案的便捷方法。 當需要以程式設計方式從 PDF 文件中提取圖像或生成圖像縮圖時,此功能尤其有用。

若要使用 IronPDF 將檔案轉換為影像,您可以按照以下程式碼片段中的步驟操作:

using IronPdf;
using IronSoftware.Drawing;

var pdf = PdfDocument.FromFile("input.pdf");

// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");

// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);

// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
using IronPdf;
using IronSoftware.Drawing;

var pdf = PdfDocument.FromFile("input.pdf");

// Extract all pages to a folder as image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");

// Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);

// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
Imports IronPdf
Imports IronSoftware.Drawing

Private pdf = PdfDocument.FromFile("input.pdf")

' Extract all pages to a folder as image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")

' Dimensions and page ranges may be specified
pdf.RasterizeToImageFiles("C:\image\folder\example_pdf_image_*.jpg", 100, 80)

' Extract all pages as AnyBitmap objects
Dim pdfBitmaps() As AnyBitmap = pdf.ToBitmap()
$vbLabelText   $csharpLabel

如何在 NodeJS 中將 PDF 轉換為圖像:圖 5 - NodeJS PDF 轉圖像輸出

使用 IronPDF 將 PDF 檔案轉換為影像檔案就是這麼簡單。 有關 PDF 轉圖像轉換的更多詳細信息,請訪問此程式碼範例頁面

結論

在本文中,我們探討如何使用pdf-poppler套件在 Node.js 中將 PDF 檔案轉換為圖片。 按照上述步驟,您可以將 PDF 到圖像轉換功能整合到 Node.js 應用程式中,從而實現以程式設計方式處理和操作 PDF 文件的各種可能性。

另一方面,IronPDF 是一個功能強大的 C# 庫,可以簡化 PDF 操作和轉換任務。 它將 PDF 轉換為圖像的功能,為以程式設計方式提取圖像或生成 PDF 頁面的圖像表示提供了一種便捷的方法。 透過利用 IronPDF 的功能,開發人員可以將 PDF 到影像的轉換功能無縫整合到他們的 C# 應用程式中。

IronPDF 可免費用於開發,並可授權用於商業用途。 此外,您還可以透過免費試用將其用於商業模式。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。