PYTHON PDF 工具

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

發佈 2023年6月30日
分享:

PDF (可攜式文件格式)PDF 是最受歡迎的網路資料傳輸檔案格式,因為它保留了內容格式並通過安全權限確保數據安全。有許多情況下,我們需要將 PDF 文件轉換為 JPG 圖像或其他圖像格式,如 PNG、BMP、TIFF 或 GIF。網上有很多可用於 JPG 轉換的資源,但如果我們能用 Python 自己創建一個 PDF 轉 Image 轉換工具,那該有多酷?

什麼是Python?

Python是一種高階程式設計語言,用於構建軟體應用程式、網站、自動化任務、執行數據分析以及執行人工智慧和機器學習任務。由於它是解釋性語言,因此可以作為脚本語言,使其在快速開發和測試方面更具威力。

為了創建一個PDF到圖像轉換器,我們需要在電腦上安裝Python 3以上版本。從最新版本下載並安裝。 官方網站本文將使用Python的PDF轉換圖像庫來創建我們自己的圖像轉換應用程序。為此,我們將使用Python兩個最受歡迎的庫:PDF2Image和PyMuPDF。

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

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

  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 (軟體包管理) (首選安裝程式) 是 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 install poppler

適用於 Linux

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

平台獨立 (使用 conda)

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

現在一切準備就緒,讓我們開始編寫將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")
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

請注意,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()
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
PYTHON

下載 IronPDF 並嘗試使用 免費 .

< 上一頁
如何在 Python 中將 HTML 轉換為 PDF

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

免費 pip 安裝 查看許可證 >