PDF 压缩
PDF 文件太大?两种压法任选:无损压缩保留文字层,有损压缩能大幅减小体积
把 PDF 拖到这里,或点击选择
一次处理一个文件;原文件只被读取,导出的是一份新 PDF,原始文件不会被修改
文件不会上传到服务器:解析、渲染与生成新 PDF 全部在你的浏览器里完成
PDF 为什么会很大,该怎么压小
体积几乎都花在图片、字体和重复对象上。PDF 里的文字本身极小,一份上百页的纯文字文档常常不到 1MB;真正撑大文件的是三样东西:内嵌图片(扫描件一整页就是一张高分辨率大图,动辄几 MB)、嵌入的字体文件,以及大量细碎对象与重复资源(同一张 Logo 被贴了几十次却各存一份)。所以「PDF 太大」通常等价于「里面有图片或冗余结构」。
无损压缩解决结构冗余,有损压缩解决图片体积。无损压缩只重排文件的内部结构(对象流、去掉冗余对象),一个像素都不动,因此文字层、书签、链接、表单全部保留,压缩后依旧可以搜索、复制、选中文字——但收益有限,多数文件只有 0~15%,本来就被其他工具优化过的文件甚至可能略微变大。有损压缩是把每一页按目标清晰度重新渲染成 JPEG 图片,再拼成一份新 PDF:体积通常能降到原来的几分之一甚至十分之一,代价是文字层被彻底丢弃,压缩后的 PDF 不能再搜索、复制或选中文字。
扫描件该选哪一档。扫描件本身就是图片,用有损压缩最常见:110 DPI + 质量 65% 一般能把体积压到原来的三分之一到十分之一,屏幕阅读完全够用;如果还要打印或给 OCR 识别,选 150 DPI 更稳妥。反过来,合同、论文、说明书这类以文字为主的 PDF 请不要用有损压缩——它们本来就不大,压不出多少体积,却会白丢文字层,优先用无损模式。
为什么我们不做「上传到服务器压缩」。上传意味着把合同、发票、证件、工资条交给一台你无法验证的服务器,压缩完再传回来;很多同类站点还顺手留下副本。本页的做法是:用 pdf.js 在你的浏览器里把页面渲染到画布,用 pdf-lib 在你的本机生成新的 PDF,全程没有任何文件上传请求(可打开开发者工具 Network 面板核验),原始文件也不会被修改。代价是慢一点、吃一点本机内存,换来的是这些材料不必离开你的电脑。
常见问题
是正常结果,不是失败。无损压缩只能重排结构,对已经优化过的 PDF 往往没有空间可省,个别文件甚至会略微变大。遇到这种情况我们会直接告诉你「这份文件已经是较优结构,无损压缩无明显收益」,而不是假装成功;需要明显变小请切到「有损压缩」。
不能。有损压缩把每页渲染成图片,文字层不再存在,页面内容就是一张图,无法选中、复制或检索。需要保留文字请用无损压缩,或先用 OCR 工具识别成文本。
默认 110 DPI、质量 65% 适合绝大多数屏幕阅读场景,体积最小;要打印或给 OCR 用选 150 DPI;200 DPI 只在你确实需要放大看细节时使用,体积会明显变大。清晰度提高只会让文件更大,不会让原本模糊的扫描件变清楚。
没有「一键压到 1M」这种保证——最终体积取决于页数与内容。以图片、扫描件为主的文档通常可以用「有损压缩 + 更低质量/更低 DPI」压到 1MB 以内;纯文字文档本来就不大,无需强压。建议先按默认档试一次,看结果报告里的体积再决定是否加码。
原文件不会被修改,也不会被上传:工具只在浏览器内存里读一份副本,导出的是一份全新文件,换一个文件即清空副本。带打开密码的 PDF 浏览器无法解析,请先用阅读器输入密码后「另存为」一份不加密的副本再来压缩。