首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板