PYTHON PDF 工具

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

PDF(便攜式文件格式)是互聯網上傳輸數據時最受歡迎的文件格式,因為它可以保持內容格式並通過安全權限來保護數據安全。 在某些情況下,我們需要將PDF文件轉換為JPG圖像或其他圖像格式,如PNG、BMP、TIFF或GIF。 有很多線上資源可以用來進行JPG轉換,但是自己用Python創建一個PDF轉圖像的轉換工具是不是很酷呢?

什麼是 Python?

Python 是一種高階程式語言,用於構建軟體應用程式、網站、自動化任務、進行資料分析,並執行人工智慧和機器學習任務。 它也是一種腳本語言,因為它是解釋執行的,這使其在快速開發和測試方面更為強大。

若要建立 PDF 轉換圖像的工具,我們需要在電腦上安裝 Python 3+。 從官方網站下載並安裝最新版本。

在本文中,我們將使用 Python PDF 到圖像庫創建我們自己的圖像轉換應用程式。 為此目的,我們將使用 Python 最受歡迎的兩個函式庫:PDF2Image 和 PyMuPDF。

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

  1. 安裝 Python 庫以將 PDF 轉換為圖像。

  2. 從任意位置載入現有的 PDF 檔案。

  3. 使用轉換方法。

  4. 遍歷文件的頁面。

  5. 使用 save 方法將每頁保存為 JPG 或 PNG 圖像。

創建新 Python 文件

  1. 打開 Python IDLE 應用程式,然後按下 Ctrl + N 鍵。 文字編輯器將開啟。 您可以使用您偏好的文字編輯器來進行此操作。

  2. 將檔案儲存為 pdf2image.py,並放在您想轉換為圖像的 PDF 檔案的相同位置。

    我們將使用的輸入 PDF 文件包含 28 頁內容,如下所示:

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

使用 PDF2Image 庫將 PDF 文件轉換成圖像文件

1. 安裝 PDF2Image Python 庫

PDF2Image 是一個包裝 pdftocairopdftoppm 的模組。 它在 Python 3.7+ 上運行,以將 PDF 轉換為 PIL 圖像對象。 其先前的發布歷史顯示,它只包裝了pdftoppm來將PDF轉換為影像,並且僅在Python 3+上工作。

要安裝 pdf2image 套件,請打開您的 Windows 命令提示字元或 Windows PowerShell,然後使用以下的 pip 命令:

pip install pdf2image
pip install pdf2image
SHELL

Pip首選安裝程式)是 Python 的套件管理工具。 它下載並安裝第三方軟體包,提供 Python 標準庫中未提供的功能和特性。

注意:要從命令列的任何位置執行此命令,必須將 Python 添加到 PATH。 對於 Python 3+,建議使用 pip3,因為它是 pip 的更新版本。

2. 安裝 Poppler

Poppler是一個用於處理PDF文件的免費和開源庫。 它用於渲染 PDF 文件、讀取內容並修改 PDF 文件中的內容。 它通常被 Linux 使用者使用。 然而,對於 Windows,我們需要下載最新版的 Poppler。

適用於 Windows

Windows 使用者可以在此下載最新版本的 Poppler:@oschwartz10612 版本。 接著,您需要將 bin/資料夾添加到 PATH 環境變數中。

適用於 Mac

Mac 使用者也需要安裝 Poppler。 可以使用Brew安裝:

brew install poppler
brew install poppler
SHELL

適用於 Linux

大多數 Linux 發行版都附帶 pdftoppmpdftocairo 命令行工具。 如果這些工具未安裝,您可以使用套件管理器來安裝poppler-utils

適用於跨平台(使用conda

  1. 安裝poppler
    :InstallCmd conda install -c conda-forge poppler
    :InstallCmd conda install -c conda-forge poppler
SHELL
  1. 安裝 pdf2image:
    :InstallCmd pip install pdf2image
    :InstallCmd pip install pdf2image
SHELL

現在一切準備就緒,讓我們開始編寫將PDF轉換為圖像的代碼。

3. 將 PDF 文件轉換為圖像文件的程式碼

以下代碼將對輸入的 PDF 文件執行圖像轉換:

from pdf2image import convert_from_path

print("Please Wait while the file is being loaded.")
file = convert_from_path('file.pdf')

for i in range(len(file)):
    # save pdf as jpg
    print("Progress: " + str(round(i/len(file) * 100)) + "%")
    file [i].save('page'+ str(i+1) +'.jpg', 'JPEG')

print("Conversion Successful")
py
PYTHON

在上面的代碼中,我們首先使用 convert_from_path 方法打開文件。 此方法開啟位於指定路徑的檔案。 然後,我們遍歷要轉換為 JPG 圖像的 PDF 文件的每一頁。 最後,使用 save 方法將每個轉換的頁面存儲為 JPG 圖像文件。現在,執行程序並等待轉換完成。

輸出圖像文件保存在與程式相同的資料夾中。

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

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

使用 PyMuPDF 庫將 PDF 文件轉換為圖像

1. 安裝 PyMuPDF Python 庫

PyMuPDF 是 MuPDF 的擴展 Python 綁定,MuPDF 是一個輕量級的電子書、PDF 和 XPS 查看器、渲染器和工具包。 它可用來將 PDF 轉換成其他格式,例如 JPG 或 PNG。 PyMuPDF 適用於 Python 3.7+ 版本。

要安裝 PyMuPDF 套件,打開你的 Windows 命令提示字元或 Windows PowerShell,然後使用以下的 pip 指令:

pip3 install pymupdf
pip3 install pymupdf
SHELL

請注意,PyMuPDF 不像 PDF2Image 套件那樣需要任何額外的庫。

2. 將 PDF 文件轉換為圖像的代碼

以下程式碼將從 PyMuPDF 導入 fitz 模組,以便我們將 PDF 轉換為影像:

import fitz

doc = fitz.open("file.pdf")

for x in range(len(doc)):
    page = doc.load_page(x)  # number of page
    pix = page.get_pixmap()
    output = "output/pdfpage"+str(x+1)+".png" # first create the output folder in the destination
    pix.save(output)

doc.close()
py
PYTHON

在上述程式碼中,檔名作為引數傳遞給 fitz.open 方法來開啟檔案。接下來,我遍歷整個文件並單獨載入每一頁。 get_pixmap 方法用於將每個文檔頁面轉換為圖像像素,並使用 save 方法將生成的圖像保存到輸出文件夾中。 最後,關閉打開的文件以釋放記憶體。

與 PDF2Image 相比,PyMuPDF 在將 PDF 轉換為 PNG 時速度更快。 由於壓縮比例,PDF2Image 在 PNG 格式下可能會較慢。

輸出的結果與 PDF2Image 相同:

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

在C#中將PDF渲染為圖像

IronPDF Library

IronPDF 是一個用於生成、閱讀和操作 PDF 檔案的程式庫。 其專長在於利用Chromium引擎將HTML渲染為PDF。這一特性使其在需要將HTML檔案或URL轉換為PDF文件的開發者中非常受歡迎。 此外,它還提供將多種格式轉換為 PDF 文件的功能。

您也可以僅用兩行程式碼將 PDF 文件光柵化為圖像。 以下程式碼示範如何將PDF轉換為不同的圖片格式:

from ironpdf import *

# One or more images as a list. This example selects all JPEG images in a specific 'assets' folder.
image_files = [os.path.join("assets", f) for f in os.listdir("assets") if f.lower().endswith(('.jpg', '.jpeg'))]

directory_list = List [str]()
for i in range(len(image_files)):
    directory_list.Add(image_files [i])

# Converts the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(directory_list).SaveAs("composite.pdf")

# Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
py
PYTHON

下載 IronPDF 並嘗試免費使用。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
如何在 Python 中將 HTML 轉換為 PDF

準備開始了嗎? 版本: 2025.5 剛剛發布

查看許可證 >