pypdf 安装与上手指南:5 行代码搞定 PDF 合并与水印
2026/9/17 6:25:19 网站建设 项目流程

pypdf 安装与上手指南:5 行代码搞定 PDF 合并与水印

【免费下载链接】pypdfA pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files项目地址: https://gitcode.com/GitHub_Trending/py/pypdf

周五下午五点,共享盘里堆着 12 份部门周报,下班前要合并成一个 PDF,还得逐页盖上“机密”水印。与其在 PDF 工具里拖拽页面,不如写两分钟 Python 脚本——这是 pypdf 能做的事:一个纯 Python 实现的 PDF 库,负责拆分、合并、裁剪、变换 PDF 页面,顺带处理文本提取和加密。它免费开源,文件在本地处理,数据不出你的电脑。

pypdf 是什么,适合谁

pypdf 核心几乎零依赖(Python 3.9+ 下仅带一个类型回退包),安装干净,适合办公自动化、文档流水线、需要批量处理 PDF 的场景。它和常见方案的区别如下:

对比项pypdfAdobe Acrobat在线转换工具
成本免费开源付费订阅免费但有文件限制
自动化脚本批量处理手动操作为主单文件上传
隐私本地处理本地处理文件上传到服务器
可定制性完全可编程定制有限

30 秒装好 pypdf 并验证

先说结果:执行完下面这条命令,你当前环境里就多了一个可用的 pypdf。

pip install pypdf

环境要求:Python 3.9+,运行python --version确认,低于 3.9 先升级 Python。

装好后,随便找个有 PDF 文件的目录跑这段验证:

import pypdf from pypdf import PdfReader print(pypdf.__version__) # 输出版本号 reader = PdfReader("example.pdf") print(len(reader.pages)) # 输出页数

终端打印出版本号和一个数字,就装好了。如果看到ModuleNotFoundError,通常是没激活虚拟环境,先source xxx/bin/activate再跑。

按需加料

只装加密组件

文档需要 AES 级加密解密时,核心包不够,补装 crypto 选项:

pip install pypdf[crypto]

它会引入 cryptography 依赖;如果你只做基础 RC4 加密,核心包已经够用,不用装。

图片提取与右起文字

pip install pypdf[image]装 Pillow,用来提取和处理页面里的图像;pip install pypdf[rtl_text]支持阿拉伯语等从右到左的文本。拿不准会用到什么就pip install pypdf[full]一次装全,生产环境建议只装真正用到的。

没有管理员权限怎么装

共享服务器上执行pip install --user pypdf,装进用户目录即可;想隔离依赖就python -m venv pdf_env建虚拟环境,激活后再安装,互不污染。

完整跑一遍:合并并加水印

需求:给一份文档的每一页盖上水印,输出新文件,原文件保持不动:

from pypdf import PdfReader, PdfWriter src, dst = PdfReader("doc.pdf"), PdfReader("watermark.pdf") writer = PdfWriter() for page in src.pages: # 逐页处理 page.merge_page(dst.pages[0]) # 叠加水印页 writer.add_page(page) with open("output.pdf", "wb") as f: writer.write(f)

运行后打开 output.pdf,每页都应出现水印,页数和内容不变。如果报文件找不到,检查相对路径;旋转、定位等更多水印写法见官方加水印教程。

常见问题

  • pip 提示找不到匹配版本:多半是 Python 低于 3.9,用python --version核对。
  • 打开加密 PDF 直接报错:文件带密码,先reader.decrypt("密码")再操作。
  • 怎么升级pip install --upgrade pypdf。pypdf 保持向后兼容,但 2.x 到 3.x 有过破坏性变更,升级前看一眼迁移指南。
  • 提取的文本乱码:通常是字体没有内置编码映射,属字体问题,先看提取文本文档的说明。

下一步

官方文档里合并、裁剪、表单的教程都整理好了。建议第一次动手就试:写个脚本把一份 50 页的报告按章节拆成独立文件。

【免费下载链接】pypdfA pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files项目地址: https://gitcode.com/GitHub_Trending/py/pypdf

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询