PDF 优化

我要提建议

把 PDF 重写成更紧凑的版本:线性化(先显示第一页)、对象流重打包、清理未引用资源,图片只在重压后确实更小时才替换 —— 文字仍是可选中可搜索的文字。

相关工具

这个工具是做什么的

同样是「让 PDF 变小」,做法其实分两条路:一条是把每一页**重新渲染成图片**(能压得很狠,代价是文字变成图片、不可选中不可搜索),另一条是**只重写文件结构**——本工具走的就是后者,页面内容一个像素都不重画。它做四件事:① **线性化**,把第一篇内容需要的对象排到文件最前面,阅读器和浏览器不必等整份下载完就能先显示第一页(这是「Web 快速查看」的做法);② **对象流重打包**,把散落的小对象收进对象流并压掉可压的流,通常能去掉不少交叉引用与重复结构的开销;③ **清理未引用资源**,页面资源表里声明了却没被内容用到的东西(常见于反复另存、合并过的文件)会被去掉;④ **图片重压**,把够大的图片尝试转成 JPEG,**只在转换后体积确实更小时才替换**,所以它不会让文件变大、也不会碰小图标这类图。实测效果差得很开:一份 3.37MB / 77 页的排版书优化到 1.86MB(省 45%),一份 1.43MB 的图文手册省 23%,而一份 6.84MB 的扫描书只省了 0.4% —— 因为它的体积全在已经压过的扫描图上,界面会如实告诉你「这份文件本来就很紧凑」,并建议改用「PDF 压缩」。两点如实说明:勾了「重压图片」时那部分替换是**有损**的(JPEG),要求图片逐像素无损就不要勾它;优化不改页面内容、不改页数、也不动文字层,文字仍然可以选中和搜索。全程在本机用本地引擎完成:数据不出设备。

使用方法

  1. 选择一个 PDF;工具会先读出它的体积、页数与是否已经线性化。
  2. 按需勾选:线性化(默认开)、清理未引用资源(默认开)、重压图片(默认开,有损但只在更小时替换)。
  3. 点「开始优化」,完成后看结果区:体积对比、页数是否一致、线性化是否生效,以及「为什么没省」的解释。
  4. 点「导出文件」保存(文件名后缀 -optimized)。如果结果没有变小,直接用原文件即可 —— 工具会这么建议。

常见问题

和「PDF 压缩」有什么区别?该用哪个?
优化只重写文件结构,页面一个像素都不重画:文字仍是文字(可选中、可搜索),体积能省下的部分是「结构冗余 + 图片重压」。压缩会把每一页按指定 DPI 重新渲染成图片,能压得狠得多(扫描件常能到原体积的 10%~30%),代价是文字变成图片、不可选中也不可搜索。建议顺序:先用优化(无损、几秒),还不够小再用压缩。
为什么我这份文件优化后几乎没变小?
常见两种原因:① 它的体积几乎全在已经压得很紧的图片里(扫描书、图册最常见),结构上也已经没有冗余 —— 实测一份 6.84MB 的扫描书只省了 0.4%;② 你没勾「重压图片」,而体积恰好都在图里。工具会把这两种情况区分开告诉你,并建议改用「PDF 压缩」。
「重压图片」会不会把图片压糊?
它只在「转成 JPEG 之后体积确实更小」时才替换,而且会跳过小图(图标、线条这类)。所以它不会让文件变大,但**是有损的**:照片类插图换成 JPEG 后细看可能有压缩痕迹。要求逐像素无损就别勾这一项,或者先导出两个版本对比。
线性化(Web 快速查看)有什么好处?
线性化会把「显示第一页所需的对象」排到文件最前面,并写一张提示表,让阅读器和浏览器可以先显示第一页、不必等整份下载完 —— 大文件放在网页上时差别明显。它不改变页面内容,只是文件里的对象顺序与索引结构变了。
优化会改页面内容吗?
不会。页数、页面尺寸、文字层、书签、表单字段、链接都保留(优化不是重新排版,也不是重新渲染)。导出后建议自己打开确认一遍 —— 如果源文件本身有些异常对象,qpdf 会报警告,工具会把警告显示出来。