如何在 Node.js 中將 PDF 轉換為圖像檔案
IronPDF for Node.js 只需單一方法呼叫,即可將 PDF 頁面轉換為圖片。 rasterizeToImageFiles 方法可將任何 PDF(無論是單頁或多頁)轉為 PNG、JPG、GIF、BMP 及其他格式,並能直接控制輸出解析度與頁面選取。
此方法會根據您提供的檔案副檔名自動偵測輸出格式,因此無需變更設定即可在不同格式間切換。 在無法變更副檔名的環境中,若明確指定 ImageType 枚舉值,將覆寫基於副檔名的偵測機制。 IronPDF Node.js 文件涵蓋了所有受支援的輸入來源,包括檔案路徑、位元組緩衝區,以及在光柵化前轉換為 PDF 的 HTML 字串。
快速入門:將 PDF 轉換為 PNG
- 安裝 IronPDF:
npm install @ironsoftware/ironpdf - 從套件中匯入
PdfDocument - 載入您的 PDF 檔案
PdfDocument.fromFile() - 呼叫
rasterizeToImageFiles()並指定輸出路徑
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/quickstart.js
import { PdfDocument } from "@ironsoftware/ironpdf";
PdfDocument.fromFile("./sample.pdf").then((pdf) => {
pdf.rasterizeToImageFiles("./output.png");
});簡化工作流程(5 個步驟)
1. 透過 npm 安裝 IronPDF for Node.js 2. 匯入 `PdfDocument` 類別 3. 使用 `PdfDocument.fromFile()` 載入 PDF 檔案 4. 呼叫 `rasterizeToImageFiles()` 並傳入所需的輸出路徑與副檔名 5. 對於多頁面的 PDF 檔案,此方法會自動在每個輸出檔名後附加頁碼如何安裝適用於 Node.js 的 IronPDF for Node.js?
npm install @ironsoftware/ironpdfnpm install @ironsoftware/ironpdf從 npm 安裝 IronPDF for Node.js 套件,即可將 PDF 轉換為 PNG、JPG、GIF、BMP 及其他圖像格式。
在正式環境中將 PDF 轉換為圖片之前,請先設定您的授權金鑰。 此套件還需在您的系統上安裝 IronPDF Engine —— 此二進位檔負責處理所有 PDF 渲染作業,且必須安裝完畢才能進行轉換。
系統需求為何?
需使用 Node.js 12 或更高版本。 IronPDF Engine 二進位檔會在套件首次載入時自動下載,但若您的部署環境限制外網存取,您亦可手動安裝。 @ironsoftware/ironpdf 套件可在 npm 註冊表中取得,且無需進行原生模組編譯步驟,這使得 CI 管道得以保持簡潔。
如何將 PDF 轉換為圖片?
rasterizeToImageFiles 方法會讀取 PDF 文件,並將每頁內容寫入您指定的輸出路徑中,生成一個圖像檔案。對於單頁 PDF,此方法會產生精確地一個圖像檔案。 對於多頁面的 PDF 檔案,系統會自動在每個檔案名稱後附加頁碼後綴。
以下範例將從 Learning Container 載入一個範例 PDF 檔案,並將其轉換為 PNG 檔案。
在檢視器中開啟的範例 PDF 檔案。 請從 Learning Container 下載此檔案及其他測試 PDF 檔。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-png.js
import { PdfDocument } from "@ironsoftware/ironpdf";
// Load the PDF and convert it to a PNG image.
// The output path determines the format — change .png to .jpg for JPEG output.
PdfDocument.fromFile("./sample-pdf-file.pdf").then((pdf) => {
pdf.rasterizeToImageFiles("./images/sample-pdf-file.png");
return pdf;
}).catch((error) => {
console.error("Error converting PDF to image:", error);
});PdfDocument.fromFile 載入 PDF 並返回一個 Promise,該 Promise 解析為 PdfDocument 物件。 .then 回調函式會接收已解析的文件,並傳遞目標路徑至 rasterizeToImageFiles。 路徑中的檔案副檔名 —— 此處為 .png —— 會告知 IronPDF 應產生何種格式。 .catch 區塊負責處理任何讀取或轉換錯誤。
由上述範例 PDF 生成的 PNG 檔案。 IronPDF 僅需三行程式碼即可轉換文件。
如何將 PDF 轉換為 JPEG 格式?
格式選擇為自動進行:您傳遞給 rasterizeToImageFiles 的任何副檔名皆會決定輸出格式。 若要產生 JPEG 檔案而非 PNG,請變更目標路徑中的副檔名:
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-jpeg-extension.js
// Switch to JPEG by changing the file extension in the output path.
pdf.rasterizeToImageFiles("./images/pdf-to-jpeg.jpg");當無法控制輸出檔名時(例如在採用固定命名規則的自動化建置流程中),請在選項物件中傳入 ImageType 值,以覆寫基於副檔名的偵測機制:
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-jpeg-imagetype.js
import { PdfDocument, ImageType } from "@ironsoftware/ironpdf";
// ImageType.JPG forces JPEG output regardless of the file extension.
const options = {
type: ImageType.JPG,
dpi: 300
};
PdfDocument.fromFile("./sample-pdf-file.pdf").then((pdf) => {
pdf.rasterizeToImageFiles("./images/output.png", options);
return pdf;
});選項物件中的 type 屬性優先於檔案名稱副檔名。 在上述範例中,即使目標路徑以 .png 結尾,rasterizeToImageFiles 仍會產生一個 JPEG 檔案。 此原則同樣適用於 GIF 和 BMP 輸出格式。
DPI 設定如何影響輸出品質?
選項物件中的 dpi 屬性用於控制柵格化輸出的像素密度。 數值越高,生成的檔案越大且包含更多細節; 較低的數值會以犧牲銳利度為代價來減小檔案大小。
dpi: 300 可產生適合高解析度列印或歸檔的印刷級品質影像。 若用於螢幕顯示或縮圖生成,dpi: 96 可在維持網頁使用所需清晰度的同時,有效減小檔案大小。對於大多數歸檔或預覽情境而言,150 DPI 是一個合理的預設值——輸出畫質足夠清晰,適合在螢幕上閱讀,且檔案大小仍可控。 若內容將被列印或在轉換後進行 OCR 處理,建議解析度為 300 DPI 或更高。
如何將多頁 PDF 轉換為圖片?
對於多頁文件,rasterizeToImageFiles 會為每頁生成一張圖片。 IronPDF 會在每個輸出檔名後附加以零為起點的頁碼索引,讓您無需額外編寫程式碼即可保持輸出檔案的條理分明。
一份兩頁的 PDF 範例。 IronPDF 在轉換過程中會為每頁建立一個影像檔案。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-multipage.js
import { PdfDocument } from "@ironsoftware/ironpdf";
// Each page of the PDF becomes a separate image file.
// Output filenames: multipage-pdf-page_1.png, multipage-pdf-page_2.png, etc.
PdfDocument.fromFile("./multipage-pdf.pdf").then((pdf) => {
pdf.rasterizeToImageFiles("./images/multipage-pdf/multipage-pdf-page.png");
});
由兩頁 PDF 產生的兩個 PNG 檔案。 IronPDF 會根據頁碼為每個輸出檔案命名。
此自動分頁功能適用於所有受支援的圖像格式。 請搭配下一節中的 fromPages 選項,僅轉換大型文件中的特定頁面。 若需進行反向轉換,請參閱"圖片轉 PDF"範例,了解如何將多個圖片檔案合併為單一 PDF 文件。
輸出檔案名稱的結構為何?
檔案名稱格式採用從 1 開始的頁碼,並附加於檔案副檔名前。 若輸出路徑為 ./images/report-page.png,一份三頁的 PDF 文件將產生 report-page_2.png 及 report-page_3.png。 在呼叫 rasterizeToImageFiles 之前,輸出目錄必須已存在 — 此方法不會自動建立缺失的目錄。
rasterizeToImageFiles 之前,請先建立輸出目錄。 若目標目錄不存在,此方法會拋出錯誤。請使用 Node.js 的 fs.mkdirSync('./images/output', { recursive: true }) 預先建立該目錄。)}]如何僅轉換特定頁面?
選項物件中的 fromPages 屬性接受一個以零為起點的頁面索引陣列。 僅指定頁面會被柵格化; 其餘內容均被跳過。 此功能在處理大型 PDF 檔案且僅需部分頁面時特別實用——例如,為文件預覽而擷取封面及章節起始頁面。 若您需要在轉換前處理個別頁面,請參閱 PdfDocument 的 Node.js API 參考文件,其中記載了更多頁面層級的操作方法。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-selective-pages.js
import { PdfDocument, ImageType } from "@ironsoftware/ironpdf";
// Convert only pages 1, 4, 6, and 9 (zero-indexed: 0, 3, 5, 8) to BMP.
const options = {
type: ImageType.BMP,
fromPages: [0, 3, 5, 8],
dpi: 150
};
PdfDocument.fromFile("./sample-pdf-with-images.pdf").then((pdf) => {
pdf.rasterizeToImageFiles(
"./images/multipage-selective-pdf/multipage-pdf-page.bmp",
options
);
}).catch((error) => {
console.error("Failed to convert pages:", error);
});
IronPDF 僅將 fromPages 陣列中指定的四頁進行光柵化處理。 其餘頁面尚未處理。
fromPages 中的頁面索引採用零起始計數,因此 [0, 3, 5, 8] 對應的是第 1、4、6 和 9 頁。 150 的 DPI 值在輸出品質與檔案大小之間取得平衡,適用於歸檔或預覽等情境。 選擇性轉換功能相容於所有受支援的圖像類型。
零起始頁碼與一起始頁碼有何區別?
fromPages 採用從零開始的索引方式,符合 JavaScript 的標準陣列慣例。 文件的第 1 頁對應索引 0,第 2 頁對應索引 1,以此類推。 這與 PDF 檢視器中顯示的以 1 為起點的頁碼不同。 將檢視器頁面編號轉換為 fromPages 索引時,請將每個頁面編號減去一。
pdf.pageCount() 讀取頁數,並將 [pdf.pageCount() - 1] 設為 fromPages 的值。PDF 轉圖像的下一步是什麼?
IronPDF 的 rasterizeToImageFiles 方法透過一致的 API,處理格式選擇、多頁分割以及選擇性頁面轉換。 選項物件是格式覆寫、DPI 控制及頁面篩選的唯一擴充點。
此外,IronPDF for Node.js API 參考文件詳列了 rasterizeToImageFiles 及 PdfDocument 類別中所有可用的參數。 PDF 轉圖像的程式碼範例展示了 rasterizeToImageFiles 搭配額外設定的使用方式。 若需進行反向轉換,請參閱將圖片轉換為 PDF 檔案,或將多幀 TIFF 檔案轉換為 PDF。
立即開始 IronPDF for Node.js 的免費試用,在您的專案中測試 PDF 轉圖像功能。 查看授權方案,為您的團隊找到最適合的方案。
準備好探索 IronPDF 的更多功能了嗎? 點此查看完整的 Node.js 教學:Node.js 中的 HTML 轉 PDF
常見問題
如何在 Node.js 中將 PDF 轉換為圖片?
請使用 IronPDF 的 rasterizeToImageFiles 方法。透過 npm install @ironsoftware/ironpdf 安裝套件,使用 PdfDocument.fromFile() 載入 PDF 檔案,然後傳入輸出路徑並呼叫 rasterizeToImageFiles()。檔案副檔名將自動決定輸出格式。
rasterizeToImageFiles 支援哪些圖像格式?
IronPDF 支援 PNG、JPG、GIF 及 BMP 輸出格式。系統會根據輸出路徑中的檔案副檔名自動偵測格式。若要覆寫此設定,請在選項物件中傳入 ImageType 枚舉值:例如,{ type: ImageType.JPG } 會強制輸出 JPEG 格式,無論檔案副檔名為何。
如何將 PDF 中的特定頁面轉換為圖片?
請在選項物件中傳入 fromPages 陣列。該陣列接受以零為起點的頁面索引,因此 fromPages: [0, 2, 4] 將轉換第一、第三和第五頁。未列於陣列中的頁面將被跳過。
將 PDF 轉換為圖像時,應使用多少 DPI?
請在選項物件中設定 dpi 屬性。螢幕顯示與縮圖請使用 dpi: 96,歸檔與預覽請使用 dpi: 150,而需輸出印刷品質或轉換後將經由 OCR 處理的內容,則請使用 dpi: 300。
在 Node.js 中安裝 IronPDF 的需求為何?
需使用 Node.js 12 或更新版本。請透過 npm install @ironsoftware/ironpdf 安裝此套件。IronPDF Engine 二進位檔會在首次使用時自動下載,並負責處理所有 PDF 渲染作業。若用於生產環境,請設定授權金鑰以移除輸出檔案中的浮水印。
多頁 PDF 的輸出檔名結構為何?
IronPDF 會在檔案副檔名前加上以 1 為起點的頁碼。若輸出路徑為 report-page.png,一份三頁的 PDF 檔案將產生 report-page_1.png、report-page_2.png 及 report-page_3.png。在呼叫該方法之前,必須先建立輸出目錄。
在 Node.js 中,PDF 轉圖像的轉換是異步的嗎?
是的。PdfDocument.fromFile() 和 rasterizeToImageFiles() 都會傳回 Promises。請串接 .then() 處理成功路徑,並使用 .catch() 處理轉換錯誤。您也可以在這些方法中使用 async/await 語法。





