几十个PDF要处理?教你批量操作省掉重复劳动
文章摘要
每次处理PDF都要一个个打开、操作、保存?其实大部分重复性操作都能批量完成。教你用Adobe、Python脚本、在线工具批量处理PDF,一次搞定几十上百个文件。
几十个PDF要处理?批量操作省掉重复劳动
一次搞定几十上百个文件,不用一个个来
去年年底做年度报告汇总,手上有80多份部门周报PDF,每份都要加水印、压缩、改文件名。一个个来的话得花一整天。后来花了两小时研究批量处理,写了个脚本,半小时全跑完了。从那以后遇到重复性PDF操作,我第一反应就是能不能批量搞定。
哪些操作值得批量处理
不是所有操作都适合批量,一般超过5个文件、操作一样的情况才值得折腾批量:
✓ 批量压缩文件大小
✓ 批量加水印或页眉页脚
✓ 批量合并成一个PDF
✓ 批量转换格式(转Word、图片等)
✓ 批量加密或解密
✓ 批量OCR识别
✓ 批量提取特定页面
一两个文件就不用费心批量了,手动更快。10个以上基本都值得。
Adobe Acrobat的批量功能
Adobe Pro有个"操作向导"功能,专门为批量处理设计的,不需要写代码:
操作步骤:
工具 → 操作向导 → 新建操作
从左边选要做的操作,比如"压缩PDF"、"添加水印"
设置参数,添加到右边的流程里
可以叠加多个操作,比如先压缩再加水印
保存这个"操作",下次还能用
运行时选择文件夹,一批跑完
这个功能不需要编程,界面操作就行。缺点是只有Pro版才有,而且自定义程度不如脚本灵活。
实用场景:每月要把销售报告统一加公司水印再发出去,做一个"加水印"操作保存起来,下次直接运行,选文件夹,等着就行。
Python批量处理
会点Python的话,批量处理PDF真的很简单,而且比Adobe灵活得多。几个常用的库:
PyMuPDF(fitz)
功能最全,速度快。读取、编辑、渲染都能做。
pypdf
合并、拆分、加密、提取页面,轻量好用。
pdfplumber
提取表格、文字特别好用,分析PDF内容首选。
来几个实际用得上的脚本:
批量压缩文件夹里所有PDF:
import fitz
import os
from pathlib import Path
def batch_compress(input_folder, output_folder, quality=60):
"""批量压缩文件夹里的PDF"""
Path(output_folder).mkdir(exist_ok=True)
pdf_files = list(Path(input_folder).glob("*.pdf"))
print(f"找到 {len(pdf_files)} 个PDF文件")
for i, pdf_path in enumerate(pdf_files, 1):
doc = fitz.open(pdf_path)
output_path = Path(output_folder) / pdf_path.name
doc.save(
output_path,
garbage=4,
deflate=True,
clean=True
)
original = pdf_path.stat().st_size / 1024
compressed = output_path.stat().st_size / 1024
ratio = (1 - compressed/original) * 100
print(f"[{i}/{len(pdf_files)}] {pdf_path.name}"
f" {original:.0f}KB → {compressed:.0f}KB (压缩{ratio:.0f}%)")
doc.close()
batch_compress("./reports", "./compressed")
批量合并所有PDF成一个:
from pypdf import PdfWriter
from pathlib import Path
def merge_all_pdfs(input_folder, output_file):
"""把文件夹里所有PDF合并成一个"""
writer = PdfWriter()
pdf_files = sorted(Path(input_folder).glob("*.pdf"))
for pdf_path in pdf_files:
writer.append(str(pdf_path))
print(f"已添加:{pdf_path.name}")
with open(output_file, "wb") as f:
writer.write(f)
print(f"\n合并完成:共 {len(pdf_files)} 个文件")
merge_all_pdfs("./monthly_reports", "./annual_report.pdf")
这两个脚本拿去直接用,改一下文件夹路径就行。Python批量处理最大的优势是灵活,能根据文件名、大小、日期来筛选,Adobe的操作向导做不到这种精细控制。
不会写代码的替代方案
Python用不来也没关系,这些工具也能批量处理:
PDF24(在线 + 桌面版)
桌面版有"PDF24工具箱",批量压缩、合并、转换都有,完全免费。拖进去一批文件,选操作,等结果。
Smallpdf桌面版
支持批量操作,拖入多个文件直接处理。有付费版,功能更全。
PDFtk(命令行)
免费命令行工具,不用写代码,就是要记几个命令。合并、拆分、加密批量操作都能搞定。
Automator(Mac专属)
Mac自带的自动化工具,能拖拽创建PDF批量处理流程,不用写代码。
批量处理前要注意的事
备份原文件:批量操作出错了没地方哭。先把原文件复制一份,再处理副本。
先用小批量测试:新脚本或新工具,先拿3-5个文件测试,没问题再批量跑。
检查输出结果:跑完随机抽查几个,确认效果符合预期,别等全部用了才发现有问题。
注意文件命名:批量输出的文件名别覆盖原文件,加个后缀或者输出到新文件夹。
几个实际场景的解决思路
场景:每月100份发票PDF,要加盖公司章再归档
用Adobe操作向导,设置"添加印章"步骤,每月拖入文件夹一键搞定。
场景:部门所有PDF要统一压缩后上传到系统
PDF24桌面版批量压缩,或者用Python脚本,输出到指定文件夹直接上传。
场景:几百份招聘简历PDF,要提取关键信息汇总
Python + pdfplumber批量读取文字,再配合AI提取姓名、学历、经验等字段,输出到Excel。
场景:几十个扫描件PDF,要OCR识别后全文搜索
Adobe批量OCR,或者Python + pytesseract批量识别,识别完建索引,之后直接搜。
我的选择标准
5个以下:手动来,不值得折腾
5-20个,操作简单:PDF24桌面版或在线工具,快
20个以上,操作固定:Adobe操作向导,设置一次反复用
需要灵活控制:Python脚本,一次写好长期用
定期重复的任务:一定要自动化,别每次都手动
批量处理最大的价值不只是省时间,是把你从重复劳动里解放出来。80个PDF我一个个搞要一整天,脚本跑半小时,省下来的时间干点有意义的事,这才是重点。
初次研究批量处理可能要花点时间,但设置好了之后每次用都省时间。特别是定期重复的任务,一定要自动化。能让电脑做的事情,就别用人来做。