如何在Node.js中將PDF轉換為圖片文件

如何在Node.js中將PDF轉換為圖像檔案

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Node.js 透過單次方法呼叫將PDF頁面轉換為圖像。 rasterizeToImageFiles 方法可從任何單頁或多頁PDF生成PNG、JPG、GIF、BMP和其他格式,並能直接控制輸出解析度和頁面選擇。

該方法自動從您提供的文件擴展名檢測輸出格式,因此切換格式不需要更改配置。 在擴展名無法更改的環境中,可透過顯式的ImageType列舉值覆蓋基於擴展名的檢測。 IronPDF Node.js文件涵蓋了支持的輸入來源的全範圍,包括文件路徑、位元組緩衝區和由HTML字串轉為PDF後再光柵化。

快速入門:將PDF轉換為PNG

  1. 安裝IronPDF:npm install @ironsoftware/ironpdf
  2. 從套件中引入PdfDocument
  3. PdfDocument.fromFile()載入您的PDF
  4. 用輸出路徑呼叫rasterizeToImageFiles()
:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/quickstart.js

如何安裝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查看器顯示的一頁Lorem Ipsum範例文件在PDF轉圖像轉換之前用作輸入 在查看器中打開的範例PDF文件。 從Learning Container下載此文件和其他測試PDF。

:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-to-png.js

PdfDocument物件的Promise。 rasterizeToImageFiles。 該路徑中的文件擴展名—此處是.png—告知IronPDF要生成哪種格式。 .catch塊處理任何讀取或轉換錯誤。

轉換的PNG輸出文件顯示Lorem Ipsum文件內容作為PNG圖像渲染 從上述範例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或更高。

Icon Quote related to DPI設置如何影響輸出質量?

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to DPI設置如何影響輸出質量?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to DPI設置如何影響輸出質量?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to DPI設置如何影響輸出質量?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to DPI設置如何影響輸出質量?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to DPI設置如何影響輸出質量?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何將多頁PDF轉換為圖像?

對於多於一頁的文件,rasterizeToImageFiles為每頁建立一個圖像。 IronPDF在每個輸出文件名中附加一個零為基礎的頁碼,保持輸出有序,無需您撰寫額外程式碼。

查看器中打開的雙頁PDF文件,顯示圖像轉換前的兩頁範例內容 雙頁範例PDF。 IronPDF在轉換過程中為每頁建立一個圖像文件。

:path=/static-assets/pdf/content-code-examples/how-to/nodejs-pdf-to-image/convert-multipage.js

由上面雙頁PDF建立的兩個PNG輸出文件—multipage-pdf-page_1.png和multipage-pdf-page_2.png 從雙頁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

四個BMP輸出文件,標記為multipage-pdf-page_1、page_4、page_7和page_9,從一個大PDF生成 IronPDF僅對fromPages陣列中指定的四個頁面進行了光柵化。 其他頁面未經處理。

[0, 3, 5, 8]因此針對第一、第四、第六和第九頁。 150 DPI的值在輸出質量與文件大小之間達到平衡—適用於存檔或預覽用途。 選擇性轉換與所有支持的圖像型別相容。

請注意從Learning Container下載用於上述範例的帶圖像範例PDF

零基和一基頁碼之間有何不同?

fromPages使用零基索引,符合JavaScript的標準陣列約定。 文件的第1頁對應的索引是1,依此類推。 這與PDF查看器中顯示的以1為基的頁碼不同。 當將查看器頁碼轉換為fromPages索引時,請從每個頁碼減去一。

提示在不知道預先的總頁數的情況下轉換任何PDF的最後一頁,使用PdfDocument API中的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.pngreport-page_2.pngreport-page_3.png。在呼叫方法之前,輸出目錄必須存在。

在Node.js中將PDF轉換為圖片是異步的嗎?

是的。PdfDocument.fromFile()rasterizeToImageFiles() 都返回Promise。連結.then()以成功路徑並使用.catch()處理轉換錯誤。您也可以使用async/await語法與這些方法一同使用。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

準備好開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想要快速的證據嗎?
運行範例觀看您的HTML變為PDF。