ARTICLE · 984447
Python开发从零开始-50.43-Office 文档处理
接上文Python开发从零开始-50.42-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。
(三)PDF 文档常见处理场景
由于没有通用 PDF 文档处理库,所以小编通过常见处理场景来介绍(根据不同场景使用不同库):
1、查看 PDF 文档信息
PDF 文档信息通常包括:创作者、标题、创建日期和页数等相关信息。可以通过 pypdf 库轻松获取相关信息,pypdf 库的官方文档地址:
https://pypdf.readthedocs.io/en/latest/
(1)安装 pypdf 库
# 安装 pypdf 基础版pip install pypdf# 安装 pypdf 全功能版(例如字体、图片和加解密等功能)pip install "pypdf[full]"
import pypdfpypdf 库的 PdfReader 对象用于读取现有的 PDF 文件。可以解析 PDF 文档结构,提取元数据(如作者、标题),访问页面对象,提取文本或图像等。获取 PDF 文档信息的常用属性包括:
metadata 属性:获取文档元数据;
pages 属性:获取所有页面对象列表。
获取 PDF 文档信息的代码示例如下:
from pypdf import PdfReaderpr = PdfReader("example.pdf")# 返回 pdf.DocumentInformation 对象metadata = pr.metadata# 常规元数据(可能为 None)print("标题:", metadata.title if metadata else None)print("作者:", metadata.author if metadata else None)print("主题:", metadata.subject if metadata else None)print("创建者:", metadata.creator if metadata else None)print("生产者:", metadata.producer if metadata else None)print("创建日期:", metadata.creation_date if metadata else None)print("修改日期:", metadata.modification_date if metadata else None)# 页数print("页数:", len(pr.pages))
代码执行后,终端输出为:
>>> %Run -c $EDITOR_CONTENT标题: None作者: so soy主题: None创建者: Microsoft® Word LTSC生产者: Microsoft® Word LTSC创建日期: 2026-08-28 19:35:28+08:00修改日期: 2026-08-28 19:35:28+08:00页数: 1>>>
(4)旋转 PDF 页面
使用 pypdf 库进行选择 PDF 页面的主要步骤为:
使用 PdfReader 对象读取文件;
通过 PdfReader 对象的 pages 属性获取所有页面对象列表;
遍历页面对象列表,对指定页面进行旋转;
将新页面对象列表添加到 PdfWriter 对象中。
旋转 PDF 文档中单个页面的代码示例如下:
from pypdf import PdfReader, PdfWriterreader = PdfReader("example_1.pdf")# 获取 PdfWriter 对象writer = PdfWriter()# 遍历页面对象列表for i, page in enumerate(reader.pages):# 第 0 页顺时针旋转 90°;其他页不转if i == 0:# 正值顺时针,角度须为 90 的整数倍page.rotate(90)writer.add_page(page)# 将新页面类别写入新 PDF 文档with open("example_1_rotate.pdf", "wb") as f:writer.write(f)
代码执行后,生成的 PDF 文档内容如下:

(5)合并多个 PDF 文档
可以使用 pypdf 库的 PdfWriter 对象的 add_page() 方法快捷合并多个 PDF 文档。
合并多个 PDF 文档的代码示例如下:
from pypdf import PdfWriter# 获取 PdfMerger 对象merger = PdfWriter()# 创建需要合并的 PDF 文档列表,按所需顺序排列files = ["example.pdf","example_1.pdf","example_1_rotate.pdf"]for file in files:merger.append(file)# 将 PDF 文档列表写入merger.write("example_merger.pdf")
代码执行后,生成的 PDF 文档内容如下:

受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件的相关知识。