为什么「压缩 PDF」几乎没让小多少——以及什么才真的有用

大多数 PDF 本来就已经压缩过了,无损档只能省几个百分点。真正起作用的是像素:DPI、JPEG 质量和颜色。三档各自做了什么,以及背后的算术。

The Reeff maintainers发布于 2026年11月6日最后更新 2026年11月6日5 分钟读完

你有 12 MB 的 PDF,按下压缩,拿到 11.6 MB。什么都没有坏——对一份本来就压缩过的文件,这就是压缩能做到的程度。近十五年生成的 PDF,数据流基本都 deflate 过、图片基本都是 JPEG,所以「压缩」想还你空间,就必须拿走一些东西。这篇讲清楚每一档究竟拿走了什么、为什么体积由像素数而不是页数决定,以及怎么选一个你能解释得通的档位。

两种完全不同的文件,都叫「PDF」

选档位之前,先弄清手上是哪一种。答案决定了压缩几乎没用,还是效果巨大。

文字型 PDF扫描型 PDF
怎么来的从 Word、LaTeX、InDesign 或浏览器打印导出的一页一页拍照或扫描,再包进 PDF
里面装的是什么字体加文字指令,少量矢量图形每页一张大图,通常是 JPEG 或 JPEG2000
能选中一个字吗能不能——除非后来做过 OCR
常见体积80 KB – 2 MB2 MB – 40 MB
压缩能省多少几个百分点,老软件导出的偶尔更多很多,但只能靠降分辨率或降质量换来
五秒分辨两种文件。

最快的判断方法:打开文件,在一行文字上拖选,按 Ctrl/Cmd+C。如果高亮的是字符、粘贴出来是文字,就是文字型;如果选区是整个页面的大方块,就是扫描型。

三档各自做了什么

  1. 01Light——重新打包,什么都不丢

    载入文档、开启对象流、关掉元数据更新,再存一次。没有任何页面被解码。文字还是文字,图片还是原来的字节,什么都不变糊。省下的是原文件打包时浪费的空间:通常几个百分点,老软件写的文件偶尔能省几百 KB。用当前版本主流软件导出的文件在这里几乎没有可省的,因为它本来就用对象流。

  2. 02Balanced——每页按 150 DPI 渲染成 JPEG(质量 0.8)

    这一档是栅格化:每页先画到画布上,再整体编码成一张 JPEG,A4 大约 1240 × 1754 像素。页面从此就是一张图片。文件会小很多,文字不再可选中、不可搜索,小字号印出来开始发虚。150 DPI 是扫描件还能在屏幕上舒服阅读、也能印的临界点。

  3. 03Strong——每页按 110 DPI 渲染成 JPEG(质量 0.65)

    同样的操作,分辨率更低、质量更低:A4 约 909 × 1286 像素。这一档是对付「必须小于上传上限」的,不是交给客户细看的。8 pt 以下的字开始破碎,白底黑字的边缘会出现 JPEG 噪块。

压缩工具显示 Light、Balanced、Strong 三档,以及同一份 12 MB 扫描件在三档下的结果体积。
同一份 12 MB 扫描件在三档下的结果。体积差异来自像素,不是来自更聪明的算法。

解释一切的那个数:像素

栅格化后的页面是一格一格的像素,文件必须为每一格存一个值。分辨率翻倍,像素数就变成四倍——这就是为什么「压到 300 DPI」和「压到 150 DPI」在体积上不是 2 倍之差,而是在还没有算质量参数之前就已经是 4 倍之差。

分辨率A4 像素尺寸像素数渲染时位图
72 DPI(PDF 的原生单位)595 × 8420.5 MP≈ 2.0 MB
110 DPI(Strong)909 × 12861.2 MP≈ 4.7 MB
150 DPI(Balanced)1240 × 17542.2 MP≈ 8.7 MB
300 DPI(印刷级)2480 × 35088.7 MP≈ 34.8 MB
A4 页面(210 × 297 毫米)在四种分辨率下。位图内存 = 像素数 × 4 字节,是绘制时画布需要的量,不是最后写出的 JPEG。

最后写出的 JPEG 比生成它的位图小得多,因为 JPEG 丢掉的是眼睛本来就不敏感的细节。一页 150 DPI 的文字稿,通常落在 80 KB 到 400 KB 之间,取决于纸上有多少墨——所以 300 页的扫描件落在几十 MB,而 3 页的不到 1 MB。这些是区间,不是承诺:唯一有意义的数字是你自己那份文件上的数字,而工具在下载前就会显示它。

为什么重编码之后反而更大

一份本来就以 200 DPI、低质量 JPEG 保存的扫描件,用 150 DPI、质量 0.8 重编码后可能变大:像素少了,但每个像素花的比特更多了。压缩不是一根单调的旋钮。而且它要收两次画质的账——JPEG 是有损的,每一次往返都在已经存在的噪块上再叠一层。

  • 工具不会把「一样大或更大」的结果交给你。这次拒绝本身就是信息:这份文件在这个档位上没有可让的东西。
  • 同一份扫描件压第二遍、第三遍,就是文档变得看不清、却依然太大的标准过程。
  • 加密 PDF 和交叉引用表损坏的文件可能根本载入不了;压缩不是修复工具。

按这个顺序试

  1. 先写下你要对付的那条线:「上传表单要求小于 2 MB」和「越小越好」会引出完全不同的选择,而且只有前者有停止点。
  2. 如果文档必须保持可搜索,就用 Light,接受那几个百分点。不够就把文档拆成几卷,而不是把画质降掉。
  3. 如果是只会在屏幕上读的扫描件,用 Balanced(150 DPI)。发送前把一页放大到 100% 对比一下,字还清楚就停在这一档。
  4. 还是塞不进去,再用 Strong(110 DPI),并且检查最小的字,而不是最大的字。签名那一行是最先糊的地方。
  5. 如果纸还在手上,直接按 150–200 DPI 灰度重扫一遍,而不是去后处理一份 600 DPI 的彩色扫描件。这是消除问题,而不是把问题压小。
  6. 不管你选了哪一档,都打开结果搜一个你确定存在的词。搜不到,说明文档已经被栅格化,两份文件都要留着。

老实的总结:能大幅变小的只有扫描件,而它变小是因为它的页面不再是页面,而变成了照片。其余文件只能省几个百分点。认出你手上是哪一种,整个决定就做完了。

用到的工具