首頁 > 後端開發 > Python教學 > 如何使用Python使用PDF文檔

如何使用Python使用PDF文檔

Joseph Gordon-Levitt
發布: 2025-03-02 09:54:11
原創
506 人瀏覽過

How to Work With PDF Documents Using Python

PDF 文件因其跨平台兼容性而廣受歡迎,內容和佈局在不同操作系統、閱讀設備和軟件上保持一致。然而,與 Python 處理純文本文件不同,PDF 文件是二進製文件,結構更複雜,包含字體、顏色和圖像等元素。

幸運的是,借助 Python 的外部模塊,處理 PDF 文件並非難事。本文將使用 PyPDF2 模塊演示如何打開 PDF 文件、打印頁面和提取文本。關於 PDF 文件的創建和編輯,請參考我的另一篇教程。

準備工作

核心在於使用外部模塊 PyPDF2。首先,使用 pip 安裝它:

pip 是 Python 的包管理系統,用於安裝和管理 Python 軟件包,許多包可在 Python 包索引 (PyPI) 中找到。

如果您是從 python.org 下載的 Python,pip 很可能已自動安裝。 在終端輸入以下命令安裝 PyPDF2:

pip install PyPDF2
登入後複製

要使用 PyPDF2 的全部功能(包括加密、解密和圖像處理),可以使用以下命令:

pip install PyPDF2[full]
登入後複製

如果您只需要 AES 加密/解密功能,則可以使用:

pip install PyPDF2[crypto]
登入後複製

PyPDF2 默認支持 RC4 加密。

PyPDF2 基礎

PyPDF2 是一個免費開源庫,支持 PDF 文件的讀取、寫入、分割和合併等操作。本教程使用 PyPDF2 版本 2.11.1。

讀取 PDF 文件

我們將使用 Project Gutenberg 上的《美女與野獸》PDF 版本作為示例文件。您可以下載該文件或使用任何其他 PDF 文件。

以下代碼演示如何打開並讀取 PDF 文件:

import PyPDF2

with open('beauty-and-the-beast.pdf', 'rb') as book:
    book_reader = PyPDF2.PdfReader(book)
登入後複製

第一行導入 PyPDF2 模塊。 PdfReader 類用於讀取 PDF 文件,並將其頁面表示為 Page 對象。

獲取頁面數量:

import PyPDF2

with open('beauty-and-the-beast.pdf', 'rb') as book:
    book_reader = PyPDF2.PdfReader(book)
    number_of_pages = len(book_reader.pages)
    print(number_of_pages)  # 输出:48
登入後複製

直接訪問頁面編號

get_page_number() 方法可獲取頁面的編號:

import random
from PyPDF2 import PdfReader

with open('beauty-and-the-beast.pdf', 'rb') as book:
    book_reader = PdfReader(book)
    page_list = book_reader.pages
    last_page = page_list[-1]
    print(book_reader.get_page_number(last_page))  # 输出:47 (实际为第48页)
    some_page = page_list[random.randint(15, 35)]
    print(book_reader.get_page_number(some_page))  # 输出:随机页码
登入後複製

頁面模式和頁面佈局

page_modepage_layout 屬性分別返回頁面模式和頁面佈局信息:

from PyPDF2 import PdfReader

with open('beauty-and-the-beast.pdf', 'rb') as book:
    book_reader = PdfReader(book)
    print(book_reader.page_mode)  # 输出:None
    print(book_reader.page_layout)  # 输出:None
登入後複製

metadata 屬性返回 PDF 文件的元數據,例如作者、標題、創建時間和生成器等信息:

from PyPDF2 import PdfReader

with open('beauty-and-the-beast.pdf', 'rb') as book:
    book_reader = PdfReader(book)
    book_metadata = book_reader.metadata
    print(book_metadata.title)       # 输出:Beauty and the Beast
    print(book_metadata.author)      # 输出:Anonymous
    print(book_metadata.creation_date) # 输出:例如 2006-11-30 01:13:00-08:00
    print(book_metadata.producer)    # 输出:例如 pdfeTeX-1.21a
登入後複製

總結

Python 通過 PyPDF2 模塊簡化了 PDF 文件的處理。本文僅介紹了 PyPDF2 的部分功能,更多細節請參考 PyPDF2 官方文檔。

以上是如何使用Python使用PDF文檔的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板