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

Python PDF 轉換為圖像

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

PDF到圖像的轉換是Python應用程式中的一個常見需求。 開發人員使用它來生成文件縮略圖、網頁預覽,並將PDF內容輸入至圖像處理流程中。 IronPDF for Python 提供RasterizeToImageFiles方法,該方法可以將任何PDF文件(或URL)轉換為JPEG、PNG或TIFF圖像文件,並具有可配置的DPI和尺寸。

本指南展示了如何在Python中將PDF文件轉換為圖像,如何控制輸出質量,以及如何調整製成圖像的尺寸以符合佈局限制。

快速入門:將PDF轉換為圖像

  1. 安裝IronPDF:pip install ironpdf
  2. 載入PDF文件:pdf = PdfDocument.FromFile("document.pdf")
  3. 將每個頁面轉換為PNG:pdf.RasterizeToImageFiles("output/*.png", DPI=96)
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-pdf-to-image-1.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("document.pdf")
pdf.RasterizeToImageFiles("output/*.png", DPI=96)
PYTHON

為什麼開發人員將PDF轉換為圖像?

PDF到圖像的轉換可以解決軟體開發中的幾個實際問題。 最常見的需求是生成預覽——在網頁介面或移動應用程式中顯示PDF文件的縮略圖,而不強迫使用者下載並打開完整文件。

其他常見的使用場景包括:

  • 機器學習流程:OCR模型、佈局分析工具和計算機視覺系統接受圖像輸入,而不是PDF
  • 檔案和合規性:與原始PDF一起儲存視覺快照,確保即使PDF檢視器發生變化也能長期可讀
  • 報告嵌入:將特定的PDF頁面作為圖像包含在其他文件或電子郵件範本中
  • 自動化測試:比較渲染的頁面快照以檢測PDF輸出的視覺回歸

Python標準庫不包含原生的PDF到圖像功能。 工具如pdf2image需要安裝Poppler作為外部的二進位檔,這增加了部署的複雜性。 IronPDF內部處理渲染,因此在任何Python專案中新增PDF到圖像的轉換僅需要一個pip install

IronPDF 使用基於Chromium的渲染引擎。HTML-rendered PDFs產生的圖像看起來與瀏覽器顯示的完全相同,這在PDF來自HTML或URL來源時很實用。

如何將PDF文件轉換為圖像?

要將PDF轉換為圖像,在RasterizeToImageFiles。 該方法將每頁寫入一個圖像文件到指定目錄中。 輸出路徑中的星號(assets/images/1.png, assets/images/2.png等。

在調用方法之前建立輸出目錄。 如果不存在,IronPDF不會自動建立它。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-pdf-to-image-2.py
from ironpdf import PdfDocument

# Load a PDF from disk
pdf = PdfDocument.FromFile("my-content.pdf")

# Write each page to a PNG file in the "assets/images" folder
# The folder must exist before calling this method
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
PYTHON

DPI參數控制圖像解析度。 較高的DPI在花費較大的文件大小和較長處理時間下生成更清晰的圖像。標準值:

DPI值和典型使用個案
DPI典型使用
72螢幕解析度,快速處理
96標準網路質量
150良好的列印質量
300高質量列印輸出
檔案總管顯示由 RasterizeToImageFiles 從 11 頁 PDF 產生的編號 PNG 輸出檔案(1.png 至 11.png)

每個PDF頁面輸出為PNG文件的目錄

如果輸出圖像顯得模糊,則增加DPI值。 處理300 DPI跨50頁文件的時間明顯長於96 DPI--根據實際質量需求選擇使用案例。

{t:對於網路縮圖生成,96 DPI已經足夠並保持文件大小小。 保留150-300 DPI用於圖像將列印或全尺寸顯示的情況。

如何將特定頁面範圍轉換為圖像?

要僅轉換一個頁面子集,將頁面索引作為第二個參數傳遞給RasterizeToImageFiles。 頁面索引是從零開始的整數。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-pdf-to-image-3.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Convert only pages 1, 2, and 3 (zero-based indices: 0, 1, 2)
pdf.RasterizeToImageFiles("assets/images/*.png", [0, 1, 2], DPI=96)
PYTHON

選擇性頁面提取對於僅需預覽前幾頁的文件非常有用,避免不必要的處理整個文件。對於提取已嵌入PDF的圖像的工作流,IronPDF提供了獨立的提取方法。

Icon Quote related to 如何將特定頁面範圍轉換為圖像?

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

Milan Jovanovic related to 如何將特定頁面範圍轉換為圖像?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 如何將特定頁面範圍轉換為圖像?

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

Brent Matzelle related to 如何將特定頁面範圍轉換為圖像?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 如何將特定頁面範圍轉換為圖像?

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

David Jones related to 如何將特定頁面範圍轉換為圖像?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何將URL轉換為圖像?

IronPDF可以渲染網頁為PDF,然後在一個工作流內將該PDF轉換為圖像。 使用RasterizeToImageFiles。 此方法建立了網頁的視覺存檔,或為基於網頁的內容生成預覽圖像,而不需要單獨的截圖工具。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-pdf-to-image-4.py
from ironpdf import ChromePdfRenderer

# Render a web page to PDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.example.com")

# Convert each rendered page to a PNG image
pdf.RasterizeToImageFiles("assets/images/*.png", DPI=96)
PYTHON

渲染的圖像反映了頁面在Chromium瀏覽器中的顯示,包括CSS樣式和JavaScript渲染的內容。 對於需要認證或交互的頁面,請考慮使用IronPDF的HTML至PDF教程直接提供預渲染的標記。 結果PDF可以使用上述相同的方法進行光柵化。

檔案總管顯示由 IronPDF 將 URL 轉譯為 PDF 所產生的 5 個 PNG 檔案(1.png 至 5.png)

從URL呈現的圖像經由IronPDF生成

如何控制輸出圖像的尺寸?

預設情況下,RasterizeToImageFiles生成按頁面原始尺寸並乘以DPI因子縮放的圖像。 要限制輸出大小,設置ImageMaxHeight,均以像素為單位。

IronPDF根據ImageMaxHeight值保持原始縱橫比。 即使指定的寬度和高度與源頁面具有不同的比例關係,輸出不會被拉伸或變形。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-pdf-to-image-5.py
from ironpdf import PdfDocument

pdf = PdfDocument.FromFile("my-content.pdf")

# Generate thumbnail images constrained to 500x500 pixels
pdf.RasterizeToImageFiles(
    "assets/images/*.png",
    ImageMaxWidth=500,
    ImageMaxHeight=500,
    DPI=200
)
PYTHON

ImageMaxWidth=500, ImageMaxHeight=500設置為200 DPI會生成適合縮略圖顯示或基於卡片的使用者介面佈局的圖像。 調整這些值以符合應用程式設計所需的尺寸。 為產生被光柵化的PDF內容,IronPDF還支持從Python建立PDFs合併多個PDF進行轉換。

{n:縱橫比基於高度維持。 如果源頁面比高還寬,則生成的圖像可能比ImageMaxWidth窄。 設計版面以處理可變寬度的縮略圖。

PDF轉換為圖像的下一步是什麼?

本指南涵蓋了三個核心工作流程:將PDF文件轉換為圖像、將URL轉換為圖像,以及控制圖像的尺寸和質量。 IronPDF支持JPEG、JPG、PNG、TIFF和其他格式,通過相同的RasterizeToImageFiles方法。 更改輸出路徑模式中的文件擴展名以切換格式。

對於進一步的自動化,請考慮以下步驟:

  • 批量處理:迴圈遍歷PDF的目錄,依次轉換每一個,或使用Python的concurrent.futures模組進行並行處理
  • 選擇性提取:利用頁索引參數提取僅與使用場景相關的頁面
  • 圖像管道整合:將輸出文件提供給PIL/PillowOpenCV進行進一步的處理,如裁剪、註釋或格式標準化
  • 壓縮前的轉換:利用IronPDF的PDF壓縮在光柵化大型文件之前減小文件尺寸
  • 格式工作流程程式設計地填寫PDF表單,然後將完成的表單頁面轉換為圖像以供審核或歸檔

要繼續使用IronPDF進行構建,探索IronPDF for Python文件光柵化PDF為圖像的範例

開始免費的IronPDF for Python 30天試用以便在生產中使用這些功能。 準備好部署時,查看授權選項以選擇符合專案規模的方案。

進一步閱讀:將PDF轉換為圖像

常見問題

如何在Python中將PDF轉換為圖像?

使用pip install ironpdf安裝IronPDF,然後使用PdfDocument.FromFile("file.pdf")載入PDF,並調用RasterizeToImageFiles("output/*.png", DPI=96)。這會將每頁一張圖像寫入指定目錄。

IronPDF支持哪些圖像格式的PDF轉換?

IronPDF支持PNG、JPEG、JPG和TIFF輸出格式。在傳遞給RasterizeToImageFiles的輸出路徑模式中更改文件擴展名以指定格式,例如*.jpg表示JPEG或*.tiff表示TIFF。

如何在轉換PDF時控制圖像質量?

RasterizeToImageFiles中使用DPI參數。96的值為標準網頁質量。150適合印刷預覽。300產生高質量印刷輸出。較高的DPI會增加文件大小和處理時間。

我可以為輸出圖像設置最大寬度或高度嗎?

可以。以像素為單位傳遞ImageMaxWidthImageMaxHeightRasterizeToImageFiles。IronPDF根據高度值保留長寬比,這樣圖像不會失真。

如何僅將PDF的特定頁面轉換為圖像?

將零基的頁面索引列表作為第二個參數傳遞給RasterizeToImageFiles。例如,[0, 1, 2]僅轉換前三頁。

我可以使用IronPDF將網頁URL轉換為圖像嗎?

可以。使用ChromePdfRenderer調用RenderUrlAsPdf與URL,它返回PdfDocument。然後調用該文件上的RasterizeToImageFiles來生成每個渲染頁面的圖像文件。

IronPDF是否需要任何外部二進製文件才能將PDF轉換為圖像?

不需要。IronPDF包含自己基於Chromium的渲染引擎,不需要Poppler、Ghostscript或任何外部二進製文件安裝。一個pip install ironpdf就足以開始使用。

為什麼我轉換的圖像看起來模糊?

模糊的輸出是由低DPI值引起的。將其從預設的96增加到150或300以獲得更清晰的結果。注意,較高的DPI會產生更大的文件大小並需要更長的處理時間。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

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

還在滾動嗎?

希望快速證明嗎?
運行範例 看您的HTML轉化成PDF。