夜雨聆风学习资料网

ARTICLE · 1331807

PDF 合并拆分:6 件工具,半小时收拾完一柜子票据

PDF 合并拆分:6 件工具,半小时收拾完一柜子票据

办公救急 · 工具包 No.2

你是不是也这样:月底报销,一摞票据要整成一份发财务;领导回一句「只把第 3、7、9 页发我」;20 份合同要合成一本,每份三百多页,合完自己都找不到第几份在第几页。

我拿一份 24 页的报销票据试了一遍:拆成 4 份 0.09 秒,压到三分之一 1 秒,只留 4 页 0.01 秒,盖完章还能搜到字。费时间的不是操作,是不知道该做哪一步。

下面这个包,6 件工具,照着做 20 分钟能跑完一遍。

这个包里有什么

件
干什么
要装 Python 吗
用多久
01 PDF合并拆分
多份合成一份、按份拆开、只留某几页、看哪几页搜不到字
要
3 分钟
02 PDF瘦身加水印
把翻拍照压小、盖上「仅供XX使用」斜排水印
要
3 分钟
03 PDF体检表
30 行登记表,超 10 MB 自动变色,一眼看出先处理哪份
不要
5 分钟
04 发出去之前清单
12 项检查,每项写了「在哪看 / 什么算不合格」
不要
5 分钟
05 不装软件能做啥
不装任何软件时,哪 3 件能办、哪 3 件办不到
不要
3 分钟
06 扫描件怎么办
30 秒判断是不是图片版,再决定重拍还是凑合用
不要
4 分钟

6 件里 4 件零安装。 不装 Python 也能用掉四件,装了就把「拆、合、压、盖」全接上。

怎么拿

  1. 关注「办公救急」
  2. 在对话框里回复 PDF包(三个字符,中间别加空格)
  3. 自动回你一个下载地址,点开就能拿,解压就是这 6 件

解压后文件名若乱码,用 7-Zip 或 Bandizip 解压即可。

逐件说明

01 PDF合并拆分.py —— 一个文件管四件事:点数 看页数和哪几页搜不到字,合并 按命令行顺序拼,拆分 按份切,挑页 只留指定页。我用 24 页样本跑:拆 4 份每份 0.64 MB,合计还是 2.55 MB(不膨胀);挑第 1-3、7 页只剩 0.05 MB;两份合回 12 页 1.27 MB,全程 0.03 到 0.09 秒。坑:路径带括号(微信下载的都带),必须套英文双引号。

02 PDF瘦身加水印.py —— 只动图片,不动文字层,所以压完照样能搜能复制:把每页的照片重采样再压成 JPEG,文字一个字不碰。24 页样本压三档,2.55 MB 分别到 1.21 / 0.78 / 0.46 MB,画质 40.4 / 37.8 / 34.2 dB。水印是矢量斜排中文,24 页只多 159 KB。坑:多装一个 reportlab,漏了会在导入那行直接报 ModuleNotFoundError。

03 PDF体检表.xlsx —— 30 行登记表,填文件名、页数、大小,D 列超 10 MB 变黄、超 20 MB 变红、低于 3 MB 变绿,「要做什么」是下拉选项,填完就知道今晚先动哪份。坑:大小那列只填数字,带单位条件格式就不认。

04 发出去之前清单.md —— 12 项分五组:发得出去吗、看得懂吗、搜得到吗、能外发吗、留档了吗。每项写了在哪看、什么算不合格,打印出来贴工位最好用。

05 不装软件能做啥.md —— 让你少折腾:看得搜得、只留几页、图片摞成一份 PDF 这三件能办;压体积、加中文水印、扫描件变可搜索办不到,别再花一晚上找免费网站。

06 扫描件怎么办.md —— 先教 30 秒判断:Edge 打开按 Ctrl + F 搜一个字,搜不到就是图片。再分三档:能要到原件的一定要,自己看的别折腾,要发出去的必须重拍(光、正、满、清、传原图)。我那份样本 24 页里,20 页文字页共 0.25 MB,4 页翻拍页 2.30 MB —— 4 页占了九成体积。

建议的使用顺序

只有 10 分钟:做 04。12 项过一遍,你会发现「PDF 麻烦」多半不是格式问题,是这份文件本身拍歪了、糊了、少了一页。不装任何东西,今晚就能用。

有 20 分钟:04 + 03。清单过一遍,再把手上这堆文件登记进表,超 10 MB 的挑出来,明天的活就有顺序了。

有半小时,也愿意装 Python:01 → 02 → 04。先 点数 摸清底细(哪几页是死的),再 挑页 或 拆分 剔掉不要的,然后 瘦身 压到能发,要外发的 水印 盖一道,最后拿清单逐项对一遍。整条链路在这份样本上跑完,机器时间不到 3 秒,剩下都是人的判断。

踩过的坑

三个真报错,不是编的:

  1. pypdf 不能直接改原文件里的图,会抛 TypeError: Cannot update an image not belonging to a PdfWriter.,必须先把整份 PDF append 进 writer 再改。第一版就栽在这,压完跟没压一样大。
  2. 水印第一版平铺太密,一页画近百行字,24 页从 2.55 MB 胖到 4.29 MB,比不压还大。降低密度后只多 159 KB。水印的代价不在字号,在每页写了多少次。
  3. 想偷懒把 票.png 改名成 票.pdf,pypdf 报 Stream has ended unexpectedly。这也是有些人发来的「PDF」打不开的原因 —— 后缀是改的,里面还是图。

一页速查

你要做的
命令 / 操作
装依赖
pip install pypdf pillow reportlab numpy
看页数和死页
python 01-PDF合并拆分.py 点数 票据.pdf
几份合成一份
python 01-PDF合并拆分.py 合并 合订本.pdf a.pdf b.pdf
只留某几页
python 01-PDF合并拆分.py 挑页 票据.pdf 1-3,7,9-10
压小
python 02-PDF瘦身加水印.py 瘦身 进.pdf 出.pdf
盖水印
python 02-PDF瘦身加水印.py 水印 进.pdf 出.pdf "仅供XX内部使用"
判断是不是图片版
Edge 打开 → Ctrl + F 搜一个字

下期是《文件名包》:一柜子「扫描件001.pdf」「微信图片_2026.jpg」,怎么一次改成能看懂、能排序、能搜到的名字,一周后。

这个号只做一件事:把一类麻烦打包,一次解决。要是你身边有人每到月底就在那儿一份份点「打印 → 另存为 PDF」,把这个包转给他 —— 他今晚能少点三十次鼠标。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料