← 退出

PDF 压缩

优化文档结构减小PDF文件体积

这个工具主要针对文档结构层面做压缩优化,效果因文件而异——如果PDF体积主要来自内嵌的高分辨率图片(比如扫描件),压缩效果可能比较有限;如果是普通的文字排版文档,压缩效果通常会更明显一些。

关于PDF 压缩

先说清楚预期:这不是那种把图片降采样、能把 20 MB 的扫描件压到 2 MB 的压缩器。它的做法只有一步——用 pdf-lib 读入 PDF,再用「对象流」(useObjectStreams)方式重新保存,把零散的内部对象打包存放。所以它对由旧式工具生成、结构松散的文字型 PDF 有可能省出体积,对体积主要来自图片的文件基本没用。页面会在处理后并排显示原始大小、压缩后大小和变化比例,让你自己判断值不值得下载。

操作步骤

  1. 点击虚线框「点击选择PDF文件」,选一个 PDF,框里会显示文件名。
  2. 点击「开始压缩」,处理中按钮显示「压缩中…」。
  3. 查看「原始大小」「压缩后」两格,以及第三格显示的「减少了 x%」或「未能有效压缩」。
  4. 决定采用的话点击「下载压缩后的文件」,文件名固定为「压缩结果.pdf」。

我实际试过的两个小样本

为了不凭空下结论,我用 pdf-lib 自己生成了两个样本,按本工具相同的方式重存。一个是 30 页纯文字 PDF(生成时关闭了对象流),从 63,283 字节变成 31,639 字节,大约少了一半;再对结果重存一次,大小不变。另一个是只含一张 600×600 随机噪点 PNG 的单页 PDF,从 1,081,646 字节变成 1,081,289 字节,几乎没变化。要注意第一个样本是在最有利的条件下做的:现代软件导出的 PDF 很多已经用了对象流,你的文件可能收益小得多,甚至完全没有。这两个数字只说明机制,不代表你的文件。

支持范围与已知限制

  • 不会重新压缩或降低图片分辨率,不会删除字体、元数据或注释。以扫描件、照片、截图为主的 PDF 基本不会变小。
  • 结果可能比原文件更大或一样大。此时第三格显示「未能有效压缩」,但下载按钮仍然存在,不要下载这个版本。
  • 加密或损坏的文件会失败,提示「处理失败,请确认文件没有损坏,或者重试。」
  • 一次只处理一个文件,下载文件名固定,需自行改名。
  • 整份文件在浏览器内存里读入再保存,特别大的文件会慢,可能导致标签页卡死。
  • 重新保存会重写整个文件,所以带数字签名的 PDF 做完后签名会失效。

显示「未能有效压缩」是工具坏了吗?

不是。它说明这个文件的结构本来就已经紧凑,或者体积几乎都是图片数据,单靠重新打包对象帮不了忙。保留原文件即可。

怎样才能真正压小扫描件?

需要降低图片分辨率或提高图片压缩率,这是本工具没有的功能。可以先重新扫描时选更低的 DPI,或用专门的图片压缩工具处理图片后重新生成 PDF。

压缩后内容或排版会变吗?

页面内容本身不会被改写,只是重新写入文件结构,所以外观应当保持一致。不过建议在发出去之前打开结果快速翻看一遍。

处理很久没反应怎么办?

文件越大占用内存越多,浏览器可能卡住。可以关闭其他标签页后重试,或先用 PDF 分割拆成几份再处理。

隐私与处理方式

代码里没有上传请求:读取、重存和生成下载都在你的浏览器里用 pdf-lib 完成,文件不会发往任何服务器。进入页面时只会载入站点自带的 pdf-lib 程序文件,不下载模型。