一份二十兆的 PDF,几乎肯定是扫描件或者带插图的文件:体积全在图片上,文字几乎不占地方。想不被那些号称什么 PDF 都能压的网站忽悠,这是要先弄明白的第一件事。
不动图片、只把 PDF 重写一遍,基本省不下什么,这一点我们量过:一份带三张图的文件,完整重写省下了五个字节。标准本身就把图像流排除在对象压缩机制之外。所以唯一真正的抓手是给图片重新编码,而这正是这件工具做的事。
它把牌摊开来做。文件里的每一张图都会被列出来,带上尺寸、体积和编码方式。它能重新编码的,它说;它不敢动的,它也说,并附上原因。做完之后,省下多少会一张张列出来,成品文件还会被重新打开,把页数数一遍。
怎么用
- 把您的 PDF 拖进来。工具会打开文件,找出里面的图片,在动手之前先列给您看。
- 调好最大宽度和画质。在扫描件上,降分辨率往往比降画质省得多。
- 点一下。文件就来了,那张对照表会告诉您哪些图被重新编码、哪些原样留下。
支持的格式
只收 PDF。要给单张图片瘦身,图片专区里的“压缩和改尺寸”更直接,而且支持批量。
PDF 文件
文字、字体和页面结构被原样复制,不受触碰。只有文件里的 JPEG 图片会被重新编码,而且只限您的浏览器解得开的那些。
它的限制
工具只给 JPEG 图片重新编码,仅此一种
扫描件和照片型文件的体积就压在这种图上,而且这也是浏览器自己解得开的一种。文件里以别的方式存放的图(无损压缩、传真用的黑白图、当作蒙版的一位图)会原样留下,表格那一行会说明原因。动一个自己都读不懂的东西,是弄坏文件最快的办法。
四色印刷的图片会原样留下,工具会把它点出来
四通道的 JPEG 来自印刷流程。浏览器解不开它,而且 Adobe 还会对它做一次数值反转,不知道这一点就会输出一张负片。我们靠读它的文件头认出这类图,原样留下,并且说出来:一个会把您照片变成负片的工具,比一个什么都不做的工具更糟。
纯文字的 PDF 在这里瘦不下来
没有什么可重新编码的:文字和字体本来就占不了多少,而标准(第 7.5.7 节)把流排除在对象压缩机制之外。我们量过:一份带三张图的文件,省下五个字节。工具会直接告诉您,而不是还给您一个几乎一模一样的文件,让您以为活干完了。
重新编码是一次不可逆的损失
以较低画质重新编码成 JPEG 的图片恢复不回来:抹掉的细节就是没了。如果这份文件有存档价值,请留好原件。工具会逐张显示省下多少,好让您判断这笔交换值不值;第一张被重新编码的图还会给出前后对照。
带透明的图片保留它的蒙版,蒙版不会被重新编码
在 PDF 里,一张图的透明信息住在旁边另一张灰度图里。JPEG 承载不了透明:所以我们只给看得见的那张重新编码,把它的蒙版原样留下。这是最稳妥的做法,也正因如此,带透明的图片省下的比别的少。
80 MB
整份文件、它解码出来的图片,以及瘦身后的版本会同时待在内存里。这是一个普通设备上、一个标签页的老实上限,而给图片重新编码是全站最吃内存的一步。
带密码保护的 PDF 在这里打不开
得先把它解开,而这需要它的密码。同一个专区里的“给 PDF 加密码”工具会做这件事。
关于这个工具的问题
我的文件会被发到什么地方吗?
不会,而且三十秒就能自己验证。按 F12 打开开发者工具,切到“网络”标签页,清空列表,然后把文件拖进来瘦一次身。一行都不会冒出来。把网断掉再做一次:工具表现完全一样,因为图片的解码和重新编码都是您的浏览器自己做的。
为什么我的纯文字 PDF 瘦不下来?
因为没有什么可减的,而这是好消息。PDF 里的文字本来就存得很紧凑,它的字体也只有几十 KB,而标准不允许把流跟其余对象一起压缩。我们在一份带三张图的文件上量过完整重写的收益:五个字节。那些宣称任何 PDF 都能“最高省 90%”的网站,说的其实是塞满图片的文件,而且他们给那些图片重新编码的方式跟我们一模一样。
是该把宽度调小,还是把画质调低?
几乎总是先调宽度,扫描件尤其如此。一张图的体积大致跟它的面积成正比:宽度减半,面积就变成四分之一。把画质降到 60 以下,会明显糟蹋大面积色块和截图里的细小文字,省下的却更少。先把宽度压到您真正会去看的尺寸。
为什么有些图片被原样留下?
因为工具只动它读得懂的东西,而且每一种情况都会点名给您看。四色图片来自印刷流程,浏览器解不开,Adobe 还会对它做数值反转:重新编码会输出一张负片。无损压缩的图、传真用的黑白图、当作蒙版的一位图,要么本来就小得可怜,要么一转成 JPEG 就毁了。这些情况下,工具都让图片留在原处,纹丝不动。
得到的文件会比原件更大吗?
会,而工具会明明白白告诉您,不藏着。当文件里的图片本来就压得比我们做得到的更好,或者您要求的画质高过原来的画质时,就会这样。这种时候请留着您的原件:更好的是它,而一个老实的工具应该说得出“我什么也没帮上”。
这会把我的元数据去掉吗?
不会,这是有意的:瘦身和清理是两个不同的动作,混在一起会让您以为做了这件、其实想做的是那件。文件的身份信息、它的 XML 块,以及压在页面上的东西都原封不动。同一个专区里的“清除 PDF 的元数据”会把它们显示出来、清掉,然后重新打开成品文件,告诉您还剩下什么。
文字的清晰度会受影响吗?
不会。PDF 里的文字不是图片:那是绘制指令加一份字体。工具连复制都不复制它们,直接把它们留在文件里。文字唯一会变糟的情况是扫描件,那里的文字本身就是一张文字的图:这时把宽度压小会让它变模糊,而前后对照图上一眼就能看出来。