别再花钱买 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)
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
07 注意事项
💡 技巧• 先安装 PyPDF2:pip install PyPDF2• 处理前备份原文件,防止误操作
⚠️ 注意• 加密的 PDF 需要先解密• 大文件处理时注意内存占用
🎁 源码获取想要获取源码,请在评论区留言
📅 下期预告:完整项目实战:每日数据自动汇总报告📅 发布时间:2026-04-18
夜雨聆风