乐于分享
好东西不私藏

别再花钱买 PDF 软件了!Python 免费搞定

别再花钱买 PDF 软件了!Python 免费搞定

👤 作者:数据处理和工作效率   |   ⏱️ 阅读时间:8 分钟左右


01 场景:100 个 PDF 要处理

领导给你 100 个 PDF 文件,要你处理一下。

有的要合并成一个大文件,有的要拆分成单独页面,有的要加水印,有的要提取指定页面…

手动搞?至少 1 天。用 Python,10 分钟搞定

02 先看效果

脚本支持 5 个功能:

合并:多个 PDF 合并成一个拆分:一个 PDF 拆分成多页水印:批量添加文字/图片水印提取:提取指定页面加密解密:添加/移除密码保护

03 完整代码

from PyPDF2 import PdfReader, PdfWriterfrom pathlib import Path# 功能 1:合并 PDFdef merge_pdfs(input_folder, output_file):    writer = PdfWriter()    for pdf in Path(input_folder).glob(“*.pdf”):        reader = PdfReader(pdf)        for page in reader.pages:            writer.add_page(page)    with open(output_file, “wb”) as f:        writer.write(f)# 功能 2:拆分 PDFdef split_pdf(input_file, output_folder):    reader = PdfReader(input_file)    for i, page in enumerate(reader.pages):        writer = PdfWriter()        writer.add_page(page)        with open(f”{output_folder}/page_{i+1}.pdf”, “wb”) as f:            writer.write(f)# 功能 3:添加水印def add_watermark(input_file, watermark_file, output_file):    reader = PdfReader(input_file)    watermark = PdfReader(watermark_file).pages[0]    writer = PdfWriter()    for page in reader.pages:        page.merge_page(watermark)        writer.add_page(page)    with open(output_file, “wb”) as f:        writer.write(f)

04 代码详解

代码用到了 PyPDF2 库,专门处理 PDF 文件。

合并功能:遍历所有 PDF 文件,逐页添加到写入器,最后保存成一个文件。

拆分功能:读取 PDF 的每一页,分别保存成独立文件。

水印功能:读取水印文件,合并到每一页上。

开始选择功能处理 PDF保存结果

05 运行结果

✅ 合并:100 个 PDF → 汇总.pdf (500 页)✅ 拆分:汇总.pdf → page_1.pdf, page_2.pdf, …✅ 水印:已添加”内部资料”水印✅ 提取:已提取第 1-10 页🎉 完成!共处理 100 个 PDF 文件

06 进阶用法

如果想批量提取所有 PDF 的第 1 页,可以这样改:

from PyPDF2 import PdfReader, PdfWriterfor pdf in Path(“PDF 文件夹”).glob(“*.pdf”):    reader = PdfReader(pdf)    writer = PdfWriter()    writer.add_page(reader.pages[0]) # 只提取第 1 页    with open(f”提取结果/{pdf.stem}_ 第 1 页.pdf”, “wb”) as f:        writer.write(f)

工具
优点
缺点
Adobe Acrobat
✅ 功能强大
⚠️ 收费昂贵
Python 脚本
✅ 免费开源
⚠️ 需要编程基础

07 注意事项

💡 技巧• 先安装 PyPDF2:pip install PyPDF2• 处理前备份原文件,防止误操作

⚠️ 注意• 加密的 PDF 需要先解密• 大文件处理时注意内存占用


🎁 源码获取想要获取源码,请在评论区留言

📅 下期预告:完整项目实战:每日数据自动汇总报告📅 发布时间:2026-04-18