如何在Node.js中將PDF轉換為圖像檔案
IronPDF for Node.js 透過單次方法呼叫將PDF頁面轉換為圖像。 rasterizeToImageFiles 方法可從任何單頁或多頁PDF生成PNG、JPG、GIF、BMP和其他格式,並能直接控制輸出解析度和頁面選擇。
該方法自動從您提供的文件擴展名檢測輸出格式,因此切換格式不需要更改配置。 在擴展名無法更改的環境中,可透過顯式的ImageType列舉值覆蓋基於擴展名的檢測。 IronPDF Node.js文件涵蓋了支持的輸入來源的全範圍,包括文件路徑、位元組緩衝區和由HTML字串轉為PDF後再光柵化。
快速入門:將PDF轉換為PNG
- 安裝IronPDF:
npm install @ironsoftware/ironpdf - 從套件中引入
PdfDocument - 用
PdfDocument.fromFile()載入您的PDF - 用輸出路徑呼叫
rasterizeToImageFiles()
:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/quickstart.js最小工作流程(5個步驟)
1. 通過npm安裝IronPDF for Node.js 2. 引入`PdfDocument`類 3. 使用`PdfDocument.fromFile()`載入PDF文件 4. 以所需的輸出路徑和擴展名呼叫`rasterizeToImageFiles()` 5. 對於多頁PDF,該方法自動將頁碼附加到每個輸出的文件名如何安裝IronPDF for Node.js?
npm i @ironsoftware/ironpdf
從npm安裝IronPDF的Node.js套件以將PDF轉換為PNG、JPG、GIF、BMP和其他圖像格式。
在生產環境中將PDF轉換為圖像之前,配置您的授權金鑰。 該套件還要求您的系統中安裝IronPDF 引擎—該二進位檔會處理所有PDF渲染操作,且必須存在才能進行轉換。
系統需求是什麼?
需要Node.js 12或更高版本。 IronPDF 引擎二進位檔在套件首次載入時自動下載,但如果您的部署環境限制外部網路存取,您也可以手動安裝它。 @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.jsPdfDocument物件的Promise。 rasterizeToImageFiles。 該路徑中的文件擴展名—此處是.png—告知IronPDF要生成哪種格式。 .catch塊處理任何讀取或轉換錯誤。
從上述範例PDF生成的PNG。 IronPDF用三行程式碼轉換文件。
有關此方法選項的更多詳盡範例,請參見PDF到圖像程式碼範例頁。
如何將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選項物件中的type屬性優先於文件名擴展名。 在上述範例中,.png結尾。 相同模式適用於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
從雙頁PDF生成的兩個PNG文件。 IronPDF為每個輸出文件命名時附加其頁碼。
此自動分頁行為適用於所有支持的圖像格式。 在下一節中與fromPages選項配合使用,以便從大型文件中僅轉換特定頁面。 如需進行相反方向的操作,請參見圖像轉PDF範例,以學習如何將多個圖像文件合併到單個PDF文件中。
輸出文件名如何結構化?
文件名模式使用以1位的頁碼附加在文件擴展名前。 如果輸出路徑是report-page_3.png。 在呼叫rasterizeToImageFiles之前必須存在輸出目錄—該方法不會自動建立缺失的目錄。
rasterizeToImageFiles之前建立輸出目錄。 如果目標目錄不存在,該方法會拋出錯誤。使用Node.js的fs.mkdirSync('./images/output', { recursive: true })提前建立它。如何僅轉換特定頁面?
選項物件中的fromPages屬性接受零為基礎的頁碼索引陣列。 僅特定的頁面被光柵化; 所有其他頁面均被跳過。 這在處理僅需要特定頁面子集的大型PDF時尤其有用—例如,提取用於文件預覽的封面和段落開始頁面。 當您需要在轉換前處理單個頁面時,Node.js API 參考關於PdfDocument提供了額外的頁面層次操作。
:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-selective-pages.js
IronPDF僅對fromPages陣列中指定的四個頁面進行了光柵化。 其他頁面未經處理。
[0, 3, 5, 8]因此針對第一、第四、第六和第九頁。 150 DPI的值在輸出質量與文件大小之間達到平衡—適用於存檔或預覽用途。 選擇性轉換與所有支持的圖像型別相容。
零基和一基頁碼之間有何不同?
fromPages使用零基索引,符合JavaScript的標準陣列約定。 文件的第1頁對應的索引是1,依此類推。 這與PDF查看器中顯示的以1為基的頁碼不同。 當將查看器頁碼轉換為fromPages索引時,請從每個頁碼減去一。
fromPages值。PDF到影像轉換的下一步是什麼?
IronPDF的rasterizeToImageFiles方法在一致的API中處理格式選擇、多頁分割和選擇性頁面轉換。 選項物件是格式覆蓋、DPI控制和頁面過濾的單一擴展點。
如需進一步了解,IronPDF Node.js API 參考記錄了在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引擎可執行檔首次使用時會自動下載並處理所有PDF渲染。為了在生產環境中使用,請配置許可金鑰以去除輸出中的浮水印。
多頁PDF的輸出文件名如何結構化?
IronPDF會在文件副檔名之前新增以一為基礎的頁碼。如果輸出路徑是report-page.png,那麼一個三頁的PDF將會產生report-page_1.png、report-page_2.png和report-page_3.png。在呼叫方法之前,輸出目錄必須存在。
在Node.js中將PDF轉換為圖片是異步的嗎?
是的。PdfDocument.fromFile()和rasterizeToImageFiles() 都返回Promise。連結.then()以成功路徑並使用.catch()處理轉換錯誤。您也可以使用async/await語法與這些方法一同使用。





