为什么「压缩 PDF」几乎没让小多少——以及什么才真的有用
大多数 PDF 本来就已经压缩过了,无损档只能省几个百分点。真正起作用的是像素:DPI、JPEG 质量和颜色。三档各自做了什么,以及背后的算术。
你有 12 MB 的 PDF,按下压缩,拿到 11.6 MB。什么都没有坏——对一份本来就压缩过的文件,这就是压缩能做到的程度。近十五年生成的 PDF,数据流基本都 deflate 过、图片基本都是 JPEG,所以「压缩」想还你空间,就必须拿走一些东西。这篇讲清楚每一档究竟拿走了什么、为什么体积由像素数而不是页数决定,以及怎么选一个你能解释得通的档位。
两种完全不同的文件,都叫「PDF」
选档位之前,先弄清手上是哪一种。答案决定了压缩几乎没用,还是效果巨大。
| 文字型 PDF | 扫描型 PDF | |
|---|---|---|
| 怎么来的 | 从 Word、LaTeX、InDesign 或浏览器打印导出的 | 一页一页拍照或扫描,再包进 PDF |
| 里面装的是什么 | 字体加文字指令,少量矢量图形 | 每页一张大图,通常是 JPEG 或 JPEG2000 |
| 能选中一个字吗 | 能 | 不能——除非后来做过 OCR |
| 常见体积 | 80 KB – 2 MB | 2 MB – 40 MB |
| 压缩能省多少 | 几个百分点,老软件导出的偶尔更多 | 很多,但只能靠降分辨率或降质量换来 |
最快的判断方法:打开文件,在一行文字上拖选,按 Ctrl/Cmd+C。如果高亮的是字符、粘贴出来是文字,就是文字型;如果选区是整个页面的大方块,就是扫描型。
三档各自做了什么
01Light——重新打包,什么都不丢
载入文档、开启对象流、关掉元数据更新,再存一次。没有任何页面被解码。文字还是文字,图片还是原来的字节,什么都不变糊。省下的是原文件打包时浪费的空间:通常几个百分点,老软件写的文件偶尔能省几百 KB。用当前版本主流软件导出的文件在这里几乎没有可省的,因为它本来就用对象流。
02Balanced——每页按 150 DPI 渲染成 JPEG(质量 0.8)
这一档是栅格化:每页先画到画布上,再整体编码成一张 JPEG,A4 大约 1240 × 1754 像素。页面从此就是一张图片。文件会小很多,文字不再可选中、不可搜索,小字号印出来开始发虚。150 DPI 是扫描件还能在屏幕上舒服阅读、也能印的临界点。
03Strong——每页按 110 DPI 渲染成 JPEG(质量 0.65)
同样的操作,分辨率更低、质量更低:A4 约 909 × 1286 像素。这一档是对付「必须小于上传上限」的,不是交给客户细看的。8 pt 以下的字开始破碎,白底黑字的边缘会出现 JPEG 噪块。

解释一切的那个数:像素
栅格化后的页面是一格一格的像素,文件必须为每一格存一个值。分辨率翻倍,像素数就变成四倍——这就是为什么「压到 300 DPI」和「压到 150 DPI」在体积上不是 2 倍之差,而是在还没有算质量参数之前就已经是 4 倍之差。
| 分辨率 | A4 像素尺寸 | 像素数 | 渲染时位图 |
|---|---|---|---|
| 72 DPI(PDF 的原生单位) | 595 × 842 | 0.5 MP | ≈ 2.0 MB |
| 110 DPI(Strong) | 909 × 1286 | 1.2 MP | ≈ 4.7 MB |
| 150 DPI(Balanced) | 1240 × 1754 | 2.2 MP | ≈ 8.7 MB |
| 300 DPI(印刷级) | 2480 × 3508 | 8.7 MP | ≈ 34.8 MB |
最后写出的 JPEG 比生成它的位图小得多,因为 JPEG 丢掉的是眼睛本来就不敏感的细节。一页 150 DPI 的文字稿,通常落在 80 KB 到 400 KB 之间,取决于纸上有多少墨——所以 300 页的扫描件落在几十 MB,而 3 页的不到 1 MB。这些是区间,不是承诺:唯一有意义的数字是你自己那份文件上的数字,而工具在下载前就会显示它。
为什么重编码之后反而更大
一份本来就以 200 DPI、低质量 JPEG 保存的扫描件,用 150 DPI、质量 0.8 重编码后可能变大:像素少了,但每个像素花的比特更多了。压缩不是一根单调的旋钮。而且它要收两次画质的账——JPEG 是有损的,每一次往返都在已经存在的噪块上再叠一层。
- 工具不会把「一样大或更大」的结果交给你。这次拒绝本身就是信息:这份文件在这个档位上没有可让的东西。
- 同一份扫描件压第二遍、第三遍,就是文档变得看不清、却依然太大的标准过程。
- 加密 PDF 和交叉引用表损坏的文件可能根本载入不了;压缩不是修复工具。
按这个顺序试
- 先写下你要对付的那条线:「上传表单要求小于 2 MB」和「越小越好」会引出完全不同的选择,而且只有前者有停止点。
- 如果文档必须保持可搜索,就用 Light,接受那几个百分点。不够就把文档拆成几卷,而不是把画质降掉。
- 如果是只会在屏幕上读的扫描件,用 Balanced(150 DPI)。发送前把一页放大到 100% 对比一下,字还清楚就停在这一档。
- 还是塞不进去,再用 Strong(110 DPI),并且检查最小的字,而不是最大的字。签名那一行是最先糊的地方。
- 如果纸还在手上,直接按 150–200 DPI 灰度重扫一遍,而不是去后处理一份 600 DPI 的彩色扫描件。这是消除问题,而不是把问题压小。
- 不管你选了哪一档,都打开结果搜一个你确定存在的词。搜不到,说明文档已经被栅格化,两份文件都要留着。
老实的总结:能大幅变小的只有扫描件,而它变小是因为它的页面不再是页面,而变成了照片。其余文件只能省几个百分点。认出你手上是哪一种,整个决定就做完了。