三页的文档没有道理是 40 MB,但这种事天天发生。有用的问题不是“怎么压缩”,而是“里面装了什么”——因为正确的解法完全取决于五件事里出错的是哪一件。
这是最常见的原因,而且差距很大。你把一张现代手机拍的照片放进文档,它是 4000 像素宽、好几 MB。页面上只显示 10 厘米宽,以印刷质量来说大概需要 1200 像素——但 PDF 把 4000 像素全部存了进去。
四张这样的照片,你就有了一个 30 MB 的文件,而它看得见的内容其实 2 MB 就装得下。判断方式:一份有照片的文档,文件大小大约等于原始图片加总。
扫描件不是“含有文字的文档”,是“含有文字照片的文档”,一页一张。每一页都背着一张整页大的图,这就是为什么 20 页的扫描件比 20 页的文字 PDF 大得多。
测试只要两秒:试着选取一个字。如果光标抓不到任何文字,那每一页都是图。600 dpi 的彩色扫描是极端案例;同一份文档用 300 dpi 灰度扫,常常只有十分之一大,而且完全读得清楚。
PDF 会内嵌字体,让文档在哪里看起来都一样——那正是这个格式存在的意义。但一套完整的中日韩字体光自己就可能好几 MB,而一份用了四种字体的文档就会嵌四套。
子集化——只嵌入实际用到的字——可以解决大部分问题,而且现在多数导出器默认就会做。如果你的不会,征兆就是:内容明明很少,文件却大得莫名其妙。
PDF 支持增量更新:编辑后保存时,新数据可以直接接在后面,而不是重写整个文件。这样做二十次,文件就背着二十层,包括已经看不见的内容。
这就是为什么你每次加批注,PDF 都会变大,就算视觉上什么都没增加。**另存为一个新的 PDF**,而不是覆盖旧文件,就会把历史丢掉。
页眉的一个标志,被一个认不出“这是同一张图”的工具分别放在四十页上,就可能被存四十次。做得好的导出器会去重;不是每个都会,而由多份文档合并而成的文件是常见的犯人。
压缩之前,先弄清楚你面对的是什么:
查看 PDF 的内部结构可以看到页数、图片数和字体是怎么分布的,很快就能定案。
图片是主因,所以:放进文档之前先降低分辨率,或是压缩做好的 PDF——那会把图片用合理的分辨率重新编码。这是唯一一个经常能砍掉八成以上的解法。
扫描件的话,如果纸质件还在,用 300 dpi 灰度重扫。纸质件不在了,压缩 PDF 会把页面图片重新编码,效果是一样的。
历史和重复资源,就重新导出成新文件,不要原地保存。
有一件事不要做:**同一份 PDF 反复压缩。**每压一次都是在重新编码已经有损的图,而文字部分大小完全没变——所以你损失了画质却没换到多少空间。从你手上最好的版本压一次就好。