跳過到頁腳內容
使用 IRONPDF FOR PYTHON

如何在 Python 中檢視 PDF 檔案

本文將探討如何使用 IronPDF 函式庫在 Python 中檢視 PDF 檔案。

IronPDF - Python 函式庫

IronPDF是一個功能強大的 Python 庫,它使開發人員能夠以程式設計方式處理 PDF 檔案。 IronPDF 是一款功能強大的工具,可輕鬆產生、處理和提取 PDF 文件中的數據,是處理各種 PDF 相關任務的理想選擇。 無論您是需要從頭開始建立 PDF、修改現有 PDF 還是從 PDF 中提取內容,IronPDF 都提供了一套全面的功能來簡化您的工作流程。

IronPDF for Python 函式庫的一些功能包括:

注意: IronPDF 產生的 PDF 資料檔案帶有浮水印。要去除浮水印,您需要購買 IronPDF 的許可。 如果您想使用 IronPDF 的授權版本,請造訪IronPDF 網站以取得授權金鑰

先決條件

在 Python 中使用 IronPDF 之前,需要先滿足一些先決條件:

  1. Python 安裝:確保您的系統上已安裝 Python。 IronPDF 與 Python 3.x 版本相容,因此請確保您已安裝相容的 Python 版本。
  2. IronPDF 庫:安裝 IronPDF 庫以存取其功能。 您可以使用 Python 套件管理器 ( pip ) 安裝它,只需在命令列介面中執行以下命令:

    pip install ironpdf
    pip install ironpdf
    SHELL
  3. Tkinter 函式庫:Tkinter 是 Python 的標準 GUI 工具包。 它用於為提供的程式碼片段中的 PDF 檢視器建立圖形使用者介面。 Tkinter 通常會隨 Python 預先安裝,但如果遇到任何問題,您可以使用套件管理器安裝它:

    pip install tkinter
    pip install tkinter
    SHELL
  4. Pillow 函式庫:Pillow 函式庫是 Python Imaging Library (PIL) 的一個分支,提供了額外的影像處理功能。 這段程式碼片段用於載入和顯示從 PDF 中提取的圖像。 使用軟體套件管理器安裝 Pillow:

    pip install pillow
    pip install pillow
    SHELL

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 檔案的步驟

導入所需的庫

首先,導入必要的庫。 在這種情況下,需要用到osshutilironpdftkinterPIL函式庫。 osshutil程式庫用於文件和資料夾操作, ironpdf庫用於處理 PDF 文件, tkinter用於建立圖形使用者介面 (GUI),PIL 用於影像處理。

import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
import os
import shutil
import ironpdf
from tkinter import *
from PIL import Image, ImageTk
PYTHON

將 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_paths
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_paths
PYTHON

若要從 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)
PYTHON

建立圖形使用者介面視窗

現在,讓我們使用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)
PYTHON

建立可捲動畫布

若要顯示影像並啟用捲動,請建立一個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"))
PYTHON

創建圖像框架

接下來,使用create_window()在畫布內建立一個Frame小工具來容納圖片。 座標(0, 0)anchor=&#39;nw&#39;參數確保幀從畫布的左上角開始。

frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
frame = Frame(canvas)
canvas.create_window((0, 0), window=frame, anchor="nw")
PYTHON

將 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)
PYTHON

如何在 Python 中將 PDF 轉換為文字(教學),圖 3:輸入文件 輸入檔

運行 GUI 主循環

最後,讓我們使用window.mainloop()來執行主事件循環。 這樣可以確保圖形使用者介面視窗保持開啟和回應狀態,直到使用者將其關閉。

window.mainloop()
window.mainloop()
PYTHON

如何在 Python 中將 PDF 轉換為文字(教學),圖 4:使用者介面輸出 使用者介面輸出

結論

本教學探討如何使用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 檔案擷取的影像。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。