如何在 Python 中檢視 PDF 檔案
本文將探討如何使用 IronPDF 函式庫在 Python 中檢視 PDF 檔案。
IronPDF - Python 函式庫
IronPDF是一個功能強大的 Python 庫,它使開發人員能夠以程式設計方式處理 PDF 檔案。 IronPDF 是一款功能強大的工具,可輕鬆產生、處理和提取 PDF 文件中的數據,是處理各種 PDF 相關任務的理想選擇。 無論您是需要從頭開始建立 PDF、修改現有 PDF 還是從 PDF 中提取內容,IronPDF 都提供了一套全面的功能來簡化您的工作流程。
IronPDF for Python 函式庫的一些功能包括:
- 使用 HTML 或 URL 從頭開始建立新的 PDF 文件
- 編輯現有 PDF 文件
- 旋轉 PDF 頁面
- 從 PDF 檔案中提取文字、元資料和圖像
- 將 PDF 檔案轉換為其他格式
- 使用密碼和限制保護 PDF 文件 -拆分和合併PDF文件
注意: IronPDF 產生的 PDF 資料檔附有浮水印。要去除浮水印,您需要購買 IronPDF 的許可。 如果您想使用 IronPDF 的授權版本,請造訪IronPDF 網站以取得授權金鑰。
先決條件
在 Python 中使用 IronPDF 之前,需要先滿足一些先決條件:
- Python 安裝:確保您的系統上已安裝 Python。 IronPDF 與 Python 3.x 版本相容,因此請確保您已安裝相容的 Python 版本。
IronPDF 庫:安裝 IronPDF 庫以使用其功能。 您可以使用 Python 套件管理器 ( pip ) 安裝它,只需在命令列介面中執行以下命令:
pip install ironpdfpip install ironpdfSHELLTkinter 函式庫: Tkinter 是 Python 的標準 GUI 工具包。 它用於為提供的程式碼片段中的 PDF 檢視器建立圖形使用者介面。 Tkinter 通常會隨 Python 預先安裝,但如果遇到任何問題,您可以使用套件管理器安裝它:
pip install tkinterpip install tkinterSHELLPillow 函式庫: Pillow 函式庫是 Python Imaging Library (PIL) 的一個分支,提供了額外的影像處理功能。 這段程式碼片段用於載入和顯示從 PDF 中提取的圖像。 使用軟體套件管理器安裝 Pillow:
pip install pillowpip install pillowSHELL
5.整合開發環境 (IDE):使用 IDE 處理 Python 專案可以大幅提升您的開發體驗。 它提供了程式碼自動完成、調試和更簡化的工作流程等功能。 PyCharm 是 Python 開發中一款受歡迎的 IDE。 您可以從 JetBrains 網站 ( https://www.jetbrains.com/pycharm/ ) 下載並安裝 PyCharm。 6.文字編輯器:或者,如果您喜歡使用輕量級的文字編輯器,您可以選擇任何文字編輯器,例如 Visual Studio Code、Sublime Text 或 Atom。 這些編輯器為 Python 開發提供了語法高亮和其他實用功能。 您也可以使用 Python 自帶的 IDE 應用程式來建立 Python 腳本。
使用 PyCharm 建立 PDF 檢視器項目
安裝 PyCharm IDE 後,請依照下列步驟建立一個 PyCharm Python 專案:
1.啟動 PyCharm:從系統應用程式啟動器或桌面捷徑開啟 PyCharm。 2.建立新專案:點選"建立新專案"或開啟一個現有的 Python 專案。
[如何在 Python 中將 PDF 轉換為文字(教學),圖 1:PyCharm IDE](/static-assets/pdf/blog/view-pdf-python-tutorial/view-pdf-python-tutorial-1.webp)
**PyCharm IDE**3.配置項目設定:為您的專案提供名稱,並選擇建立專案目錄的位置。 為您的專案選擇 Python 解釋器。 然後點擊"創建"。
[如何在 Python 中將 PDF 轉換為文字(教學),圖 2:建立一個新的 Python 項目](/static-assets/pdf/blog/view-pdf-python-tutorial/view-pdf-python-tutorial-2.webp)
**建立一個新的 Python 項目**4.建立原始檔案: PyCharm 將建立專案結構,包括一個主 Python 檔案和一個用於存放其他來源檔案的目錄。 開始編寫程式碼,然後按一下執行按鈕或按 Shift+F10 執行腳本。
使用 IronPDF 在 Python 中查看 PDF 檔案的步驟
導入所需的庫
首先,導入必要的庫。 在這種情況下,需要用到os 、 shutil 、 ironpdf 、 tkinter和PIL函式庫。 os和shutil程式庫用於文件和資料夾操作, ironpdf庫用於處理 PDF 文件, tkinter用於建立圖形使用者介面 (GUI),PIL 用於影像處理。
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTkimport os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk將 PDF 文件轉換為圖像
接下來,定義一個名為convert_pdf_to_images的函數。 此函數以 PDF 檔案的路徑作為輸入。 函數內部使用 IronPDF 庫從文件中載入 PDF 文件。然後,指定一個資料夾路徑來儲存提取的影像檔案。 IronPDF 的pdf.RasterizeToImageFiles方法用於將 PDF 的每個頁面轉換為圖像文件,並將其保存在指定的資料夾中。 使用列表來儲存影像路徑。 完整的程式碼範例如下:
def convert_pdf_to_images(pdf_file):
"""Convert each page of a PDF file to an image."""
pdf = ironpdf.PdfDocument.FromFile(pdf_file)
# Extract all pages to a folder as image files
folder_path = "images"
pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
# List to store the image paths
image_paths = []
# Get the list of image files in the folder
for filename in os.listdir(folder_path):
if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
image_paths.append(os.path.join(folder_path, filename))
return image_pathsdef convert_pdf_to_images(pdf_file):
"""Convert each page of a PDF file to an image."""
pdf = ironpdf.PdfDocument.FromFile(pdf_file)
# Extract all pages to a folder as image files
folder_path = "images"
pdf.RasterizeToImageFiles(os.path.join(folder_path, "*.png"))
# List to store the image paths
image_paths = []
# Get the list of image files in the folder
for filename in os.listdir(folder_path):
if filename.lower().endswith((".png", ".jpg", ".jpeg", ".gif")):
image_paths.append(os.path.join(folder_path, filename))
return image_paths若要從 PDF 文件中提取文本,請造訪此程式碼範例頁面。
把手窗戶關閉
為了在應用程式視窗關閉時清理提取的圖像文件,定義一個on_closing函數。 在這個函數內部,使用shutil.rmtree()方法刪除整個images資料夾。 接下來,將此函數設定為視窗關閉時要執行的協定。 以下程式碼有助於實現該任務:
def on_closing():
"""Handle the window closing event by cleaning up the images."""
# Delete the images in the 'images' folder
shutil.rmtree("images")
window.destroy()
window.protocol("WM_DELETE_WINDOW", on_closing)def on_closing():
"""Handle the window closing event by cleaning up the images."""
# Delete the images in the 'images' folder
shutil.rmtree("images")
window.destroy()
window.protocol("WM_DELETE_WINDOW", on_closing)建立圖形使用者介面視窗
現在,讓我們使用Tk()建構函式建立主 GUI 窗口,將視窗標題設為"影像檢視器",並將on_closing()函式設定為處理視窗關閉的協定。
window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)window = Tk()
window.title("Image Viewer")
window.protocol("WM_DELETE_WINDOW", on_closing)建立可捲動畫布
若要顯示影像並啟用捲動,請建立一個Canvas小工具。 Canvas小工具配置為填滿可用空間,並使用pack(side=LEFT, fill=BOTH, expand=True)向兩個方向擴展。 此外,建立一個Scrollbar小工具,並將其配置為控制所有頁面和畫布的垂直捲動。
canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)
# Update the scrollregion to encompass the entire canvas
canvas.bind("<Configure>", lambda e: canvas.configure(
scrollregion=canvas.bbox("all")))
# Configure the vertical scrolling using mouse wheel
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
int(-1*(e.delta/120)), "units"))canvas = Canvas(window)
canvas.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar = Scrollbar(window, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
canvas.configure(yscrollcommand=scrollbar.set)
# Update the scrollregion to encompass the entire canvas
canvas.bind("<Configure>", lambda e: canvas.configure(
scrollregion=canvas.bbox("all")))
# Configure the vertical scrolling using mouse wheel
canvas.bind_all("<MouseWheel>", lambda e: canvas.yview_scroll(
int(-1*(e.delta/120)), "units"))創建圖像框架
接下來,使用create_window()在畫布內建立一個Frame小工具來容納圖片。 座標(0, 0)和anchor='nw'參數確保幀從畫布的左上角開始。
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")將 PDF 文件轉換為圖像並顯示
下一步是呼叫convert_pdf_to_images()函數,並傳入輸入 PDF 檔案的檔案路徑名。此函數會將 PDF 頁面提取為圖像,並傳回一個圖像路徑清單。 透過遍歷映像路徑並使用 PIL 庫中的Image.open()方法載入每個映像,即可使用ImageTk.PhotoImage()建立一個PhotoImage物件。 然後建立一個Label小工具來顯示圖像。
images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
image = Image.open(image_path)
photo = ImageTk.PhotoImage(image)
label = Label(frame, image=photo)
label.image = photo # Store a reference to prevent garbage collection
label.pack(pady=10)images = convert_pdf_to_images("input.pdf")
# Load and display the images in the Frame
for image_path in images:
image = Image.open(image_path)
photo = ImageTk.PhotoImage(image)
label = Label(frame, image=photo)
label.image = photo # Store a reference to prevent garbage collection
label.pack(pady=10)運行 GUI 主循環
最後,讓我們使用window.mainloop()來執行主事件循環。 這樣可以確保圖形使用者介面視窗保持開啟和回應狀態,直到使用者將其關閉。
window.mainloop()window.mainloop()結論
本教學探討如何使用IronPDF庫在 Python 中檢視 PDF 文件。 它涵蓋了打開 PDF 文件並將其轉換為一系列圖像文件所需的步驟,然後在可滾動畫布中顯示這些圖像,以及在應用程式關閉時處理提取圖像的清理工作。
有關 IronPDF for Python 庫的更多詳細信息,請參閱文件。
下載並安裝IronPDF for Python庫,還可以獲得免費試用版,以測試其在商業開發中的完整功能。
常見問題解答
如何在 Python 中檢視 PDF 檔案?
您可以使用 IronPDF 函式庫在 Python 中檢視 PDF 檔案。它可讓您將 PDF 頁面轉換為影像,然後在使用 Tkinter 的 GUI 應用程式中顯示。
在 Python 中建立 PDF 檢視器的必要步驟為何?
要在 Python 中製作 PDF 檢視器,您需要安裝 IronPDF,使用 Tkinter 製作圖形使用者介面,並使用 Pillow 進行影像處理。使用 IronPDF 將 PDF 頁面轉換成影像,並顯示在使用 Tkinter 建立的可捲動畫布中。
如何安裝 IronPDF 以便在 Python 專案中使用?
您可以使用 pip 安裝 IronPDF,方法是在終端機或命令提示符中執行指令 pip install ironpdf。
在 Python 中建立 PDF 檢視器應用程式需要哪些函式庫?
您將需要 IronPDF 來處理 PDF,Tkinter 用於 GUI,Pillow 用於影像處理。
我可以使用 Python 從 PDF 擷取影像嗎?
是的,IronPDF 允許您從 PDF 中提取圖片,然後可使用 Pillow 圖庫進行處理或顯示。
如何在 Python 中將 PDF 頁面轉換為影像?
您可以使用 IronPDF 的功能將 PDF 頁面轉換成影像格式,然後在 Python 應用程式中操作或顯示。
如何處理 Python PDF 檢視器應用程式中的視窗關閉?
在 PDF 檢視器應用程式中,您可以透過清理擷取的影像來處理視窗關閉,並確保所有資源都被適當釋放,通常會使用 Tkinter 的事件處理函式。
如何在 Python 中保護 PDF 檔案的安全?
IronPDF 提供多種選項,可在 PDF 檔案中加入密碼和使用限制,以加強 PDF 的安全性。
在 PDF 檢視應用程式中使用 Tkinter 有何優點?
Tkinter 可讓您為 PDF 檢視器建立友善的圖形化介面,實現可捲動檢視以瀏覽 PDF 頁面等功能。
在 PDF 專案中使用 Pillow 的目的為何?
Pillow 在 PDF 專案中用於處理影像,例如載入並顯示使用 IronPDF 從 PDF 檔案擷取的影像。









