经验分享
批量压缩上百个PDF:我的自动化方案
前面讲的多是单文件操作。当压PDF变成批量任务——财务月底800张电子回单、行政归档三年扫描件——手动一个个点就是
灾难。这篇分享我从"手点两百次"进化到"一条命令跑完"的自动化之路。
需求画像
批量场景的痛点不只是压缩本身,还有:文件分散在多层文件夹、命名要保留、失败要可重试、压完要做质量抽检。在线工具批量要付费、WPS批量要会员,而我最后的选择是Python+开源库,全程本地、零费用、可定制一切。

方案一:pikepdf——无损瘦身首选
pikepdf是qpdf的Python封装,能做"结构优化":去除冗余对象、压缩流、修复损坏结构。特点是无损(不碰画质),对多轮编辑过的老PDF有奇效,通常白捡10%-40%体积。核心代码就几行:

方案二:Ghostscript——有损压缩王者
要压图片(扫描件类),Ghostscript是命令行神器:

-dPDFSETTINGS四个档位:/screen(72dpi最小)、/ebook(150dpi均衡)、/printer(300dpi)、/prepress(最高质量)。日常批量归档我全用/ebook,扫描件普遍能压到1/5。
我的完整流水线
把两者串起来,加上目录遍历和日志:
1. 遍历文件夹所有PDF,跳过已压缩的(按命名后缀或日志判断);
2. 先跑pikepdf无损优化,记录前后体积;
3. 体积仍超阈值(如5MB)的,追加Ghostscript /ebook档;
4. 输出按原目录结构落到「compressed」目录,命名加"_c"后缀;
5. 生成CSV报告:文件名、原体积、新体积、压缩率;
6. 最后抽检3%的文件放大看关键页。
800个回单跑完全程约6分钟,平均压缩率87%,全程无人值守。
给非程序员的替代方案
不想碰代码的话:WPS批量压缩(会员)适合几百个以内的任务;PDF24的免费桌面版支持批量处理,压缩档位可选;Acrobat的「动作向导」能自定义批处理流程,企业用户首选。
批量压缩的本质是把人从重复劳动里解放出来——凡是需要点超过十次鼠标的事,都值得写个脚本。