一个轻量级 PDF 工具脚本集合,适合写论文、课程作业、整理扫描件或处理日常办公 PDF。当前包含 PDF 合并、按页码拆分、按规则批量拆分、替换指定页面等功能。
| 脚本 | 功能 | 适合场景 |
|---|---|---|
merge_PDF.py |
合并文件夹中的多个 PDF | 把论文附件、课程材料、扫描件合成一个文件 |
split_pdf1.py |
Tkinter 图形界面拆分 PDF | 不想敲命令,直接选择文件和输出目录 |
split_pdf2.py |
按 txt 规则批量拆分 PDF |
一份长 PDF 按章节、题目、页码段拆成多个文件 |
exchangepdf.py |
用单页 PDF 替换原 PDF 的某一页 | 替换签字页、错页、封面或重新扫描的页面 |
建议使用 Python 3.8+。
pip install PyPDF2如果使用 split_pdf1.py 的图形界面版本,需要本机 Python 支持 tkinter。Windows 通常自带;macOS 或 Linux 如果缺少,需要单独安装对应的 Tk 组件。
pdf_tool_script/
├── README.md
├── merge_PDF.py # 批量合并 PDF
├── split_pdf1.py # 图形界面拆分 PDF
├── split_pdf2.py # 按规则文件拆分 PDF
├── exchangepdf.py # 替换指定页
└── split_rule.txt # 拆分规则示例文件
merge_PDF.py 会读取指定文件夹中的所有 .pdf 文件,并输出为一个合并后的 PDF。
使用前把脚本中的 target_path 修改成自己的 PDF 文件夹路径:
target_path = r'D:\pythonProject\pdf合并'然后运行:
python merge_PDF.py注意:当前脚本按操作系统返回的文件顺序合并,不能在运行时手动选择顺序。建议提前把文件命名为 01-封面.pdf、02-正文.pdf、03-附录.pdf 这类带序号的名称,后续也更容易扩展成排序合并。
split_pdf1.py 提供一个简单窗口,可以选择要拆分的 PDF、选择输出目录、输入页码范围,然后生成拆分后的文件。
python split_pdf1.py页码输入支持:
1-10
12
1-10,15,20-30
说明:
1-10:导出第 1 到第 10 页。12:单独导出第 12 页。1-10,15,20-30:一次生成多个 PDF。
split_pdf2.py 适合处理“一个大 PDF 要拆成很多份”的情况。先准备一个规则文件,例如 split_rule.txt。
规则格式为:页码范围 输出文件名,每行一条。
1-40 chapter_01
41-85 chapter_02
86-125 appendix
运行脚本:
python split_pdf2.py根据提示输入:
请输入要拆分的PDF名字(例如test.pdf): test.pdf
请输入写有拆分规则的文件名(例如:rule.txt): split_rule.txt
运行后会生成:
chapter_01.pdf
chapter_02.pdf
appendix.pdf
exchangepdf.py 可以把原 PDF 中的某一页替换成另一个单页 PDF。
使用前修改脚本底部的参数:
original_pdf_path = r'C:\Users\...\original.pdf'
replacement_pdf_path = r'C:\Users\...\single.pdf'
page_number_to_replace = 7
output_pdf_path = 'output.pdf'然后运行:
python exchangepdf.py输出文件会保存为 output.pdf,原文件不会被覆盖。
- 处理重要文件前,先备份原 PDF。
- 页码从
1开始输入,不是从0开始。 - 文件名尽量不要包含特殊符号,避免不同系统下路径解析出错。
- 如果是扫描件或很大的 PDF,运行时间会更长,建议先用小文件测试规则。
- Windows 路径可以写成
r'C:\path\to\file.pdf',macOS/Linux 路径一般类似/Users/name/file.pdf。
提示找不到 PyPDF2 怎么办?
先安装依赖:
pip install PyPDF2为什么合并顺序不是我想要的?
当前 merge_PDF.py 没有显式排序。建议先按顺序重命名文件,例如 01.pdf、02.pdf、03.pdf。
为什么拆分时报页码错误?
检查输入页码是否超过 PDF 总页数,并确认范围左边小于或等于右边,例如 5-10 是有效的,10-5 是无效的。
- 为合并功能增加文件名排序和输出路径配置。
- 把硬编码路径改成命令行参数。
- 统一使用新版
PyPDF2.PdfReader/PdfWriterAPI。 - 为常用操作增加更友好的命令行入口。