我的 PDF 为什么这么大?
上网搜索,每条结果都给出同一个答案:图像。这个建议并不错,但顺序错了——顺序错了,人们就会用错工具。
所以我们选择测量而不是猜测。我们在对象层面拆解了 22 份公开文档——共 1,726 页,包括税务表格、学术论文、机构报告和标准文本——并统计每个字节属于哪个类别。二十二份中有十一份完全不含图像。
使用方法
- 先看每页多少 MB. 用文件大小除以页数。每页超过约 1 MB 指向图像;远低于这个数则指向字体、表单或结构。
- 打开对应的工具. 图像密集的文件用压缩——在浏览器里运行,不需上传。
- 压缩,或指定目标大小. 选择一个档位,或直接输入平台要求的精确大小。
- 确认前先对比. 预览会以 100% 显示质量。如果是黑白文档的彩色扫描件,先试试灰度。
简短的答案取决于文件已经有多大
我们把文档分成三个体积区间,并取每个类别的中位数。用中位数而非平均值,是因为单独一份 6 MB 的图像密集文件就足以拉偏平均值。
| 文件大小 | 文档数 | 图像 | 字体 | 内容 | 表单字段 | 结构 |
|---|---|---|---|---|---|---|
| 小于 250 KB | 8 | 0.0% | 11.6% | 43.3% | 12.8% | 19.7% |
| 250 KB – 1 MB | 6 | 0.0% | 52.2% | 14.9% | 2.8% | 5.3% |
| 大于 1 MB | 8 | 26.0% | 6.7% | 29.3% | 1.1% | 10.3% |
超过 1 MB 时,通行看法是对的:图像占主导。低于 1 MB 时,字节完全在别处——在嵌入字体里,在绘制指令里,还有几乎没有任何指南提到的东西:表单字段的定义。
原因一 —— 扫描分辨率(在大文件中仍是首要原因)
手机和办公扫描仪默认以 300–600 dpi 彩色扫描。一页 600 dpi 彩色 A4 大致相当于一张 3,500 万像素的图像。在屏幕上阅读,150 dpi 绰绰有余;若用于文本存档,灰度还能再减一半。这是通行建议完全正确的唯一情形——我们的数据也认同:图像主导的文档达到了 85–89%。
| 文档大小 | 图像占比 |
|---|---|
| 6.6 MB | 89.0% |
| 751 KB | 85.0% |
| 3.6 MB | 70.9% |
| 1.5 MB | 60.1% |
| 6.5 MB | 31.2% |
解决办法:把文件送进“压缩”。扫描图像会按文档分辨率而非传感器分辨率重新编码。40 MB 的扫描件通常降到 2–4 MB;如果某个平台设有硬性上限,请直接填目标大小,而不是选质量档位。
原因二 —— 嵌入字体,沉默的大多数
在 250 KB – 1 MB 区间,字体占比的中位数是 52.2%。在我们样本的极端情况下超过 85%:文件的绝大部分并不是你读到的文字,而是绘制这些文字的字体程序。
| 文档大小 | 字体占比 |
|---|---|
| 664 KB | 87.6% |
| 821 KB | 85.4% |
| 158 KB | 71.2% |
| 359 KB | 65.3% |
| 185 KB | 53.8% |
原因是子集化缺失或只做了一半。PDF 会嵌入它用到的字体;好的生成器只嵌入实际出现的字形。差的生成器——或者把每种字重分别加载的模板——会把整套字符集按变体各嵌入一次。五个字族乘四种字重就是二十个嵌入字体程序,而且没有一个还能再压缩,因为字体文件本身已经压缩过了。
原因三 —— 表单字段,没人计算的负担
可填写表单中的每个输入框、每个复选框、每个下拉列表,都以字典对象的形式存在于文件中:位置、类型、默认值、外观流、校验规则。它们不是流,所以任何压缩工具都不会碰它们——也没有任何指南会把它们算进去。
| 文档 | 注释数 | 占比 |
|---|---|---|
| 纳税申报表 | 229 | 26.8% |
| 信息表 | 124 | 24.7% |
| 指南(142 页) | 2,958 | 21.3% |
| 申报附表 | 275 | 21.2% |
| 简表 | 85 | 19.2% |
一份税务表格的四分之一,不过是你要填写的那些格子的定义。于是很容易得出结论:把表单扁平化——填好之后丢掉这些定义——就能拿回四分之一的体积。我们也测了:拿不回来。
| 字段数 | 之前 | 之后 | 变化 |
|---|---|---|---|
| 199 | 215 KB | 327 KB | +52% 变大 |
| 105 | 120 KB | 170 KB | +42% 变大 |
| 116 | 822 KB | 874 KB | +6% 变大 |
| 29 | 664 KB | 670 KB | +1% 变大 |
| 1 | 2,360 KB | 2,075 KB | −12% 变小 |
原因四 —— 按原始尺寸粘贴的照片和截图
一份包含五张手机照片的报告,会嵌入五张 1,200 万像素的原图,哪怕每张都只显示成邮票大小:页面显示的是小版本,文件携带的却是大版本。截图在一个特定方面更糟——它们是 PNG,无损而且大,在 Retina 或 4K 屏幕上,一张全屏截图宽达 4,000 像素。
压缩会按图像实际显示的尺寸重新编码;这就是为什么照片密集的报告和塞满截图的演示文稿,常常在阅读尺寸下看不出差别的情况下缩小 80–90%。
你属于哪一种?一张决策表
先用文件大小除以页数——单是这个数字就能立刻缩小范围。
| 你的情况 | 主要原因 | 真正有用的做法 |
|---|---|---|
| 每页超过约 1 MB,页面看起来像照片 | 图像 | 压缩;黑白扫描件可用灰度 |
| 已经填好的可填写表单 | 表单字段 | 扁平化能锁定它,但不会让它变小 |
| 纯文字报告,250 KB – 1 MB | 嵌入字体 | 重新导出;减少字体数量 |
| 数百页纯文本 | 内容流 | 已接近最优——拆分更合理 |
| 文件小、页数少、没有图像 | 结构与表单字段 | 用会重写文件的编辑器重新导出 |
这一切都在 Haven PDF 里、在你的浏览器中运行。过大的文件无需上传到任何地方就能变小——也就是说,一份机密合同在你压缩它的整个过程中都留在你自己的电脑上。
我们如何测量,以及这不能证明什么
我们在对象图层面遍历每份文档,并按每个流的原始长度——它在文件中真正占据的空间——归入类别。图像 XObject 以及带 JPEG、JPX、CCITT 或 JBIG2 过滤器的流计为图像;通过 FontFile、FontFile2 或 FontFile3 引用的流计为字体;其余是内容。已统计流之外的字节视为结构性开销,并从中分离出表单与注释字典。
常见问题
- 我的 PDF 全是文字却还是很大,为什么?
- 几乎可以肯定是嵌入字体。在我们的测量中,250 KB 到 1 MB 之间的文字文档,字体占比中位数为 52%,最差的一份达到 88%。图像压缩触及不到那里;用会重写文件的编辑器重新导出才有效。
- 压缩会让文字变模糊吗?
- 真正的文字——录入的、而非扫描的——不受图像压缩影响,在任何缩放级别都保持清晰。在扫描件中文字是图像的一部分,因此会受影响;中等档位通常仍能保持清楚可读。
- 为什么压缩几乎没让我的文件变小?
- 几乎可以肯定是因为没有图像可压缩。我们测量的二十二份文档中有十一份一张图都没有。看看每页多少 MB:远低于每页 1 MB 通常意味着字体、表单字段或结构。
- 把表单扁平化真的能省这么多吗?
- 不能——我们核实过。字段定义占这些文件的 19–27%,但把其中九份扁平化后,中位数文件反而大了约 6%,最差的一份增大了 52%。扁平化是为了锁定表单,不是为了缩小它。
- 有没有安全的最大压缩程度?
- 用预览:压缩后以 100% 查看一页文字密集的内容,只有在依然轻松可读时才加大力度。若指定了目标大小,工具会自动选出能放得下的最佳质量。
参考来源
- ISO 32000-2:2020 — 文档管理:可移植文档格式 — 对象结构、流过滤器与 AcroForm 字段字典的规范性定义。
- PDF 1.7 Reference(Adobe;内容与 ISO 32000-1 相同) — 字体嵌入(§9.9)、图像 XObject(§8.9)、注释(§12.5)。
- 样本:IRS 表格与出版物、arXiv 论文、公共机构报告 — 全部为可公开下载的文档。未使用任何个人或私密文件。