PDF 太大发不了邮件?本地压缩的三档质量怎么选
邮箱附件 25MB 上限、政务系统 10MB 上限、招聘平台 5MB 上限——「PDF 太大」卡住提交流度的场景比想象中多。本文讲清压缩的两条技术路线与质量档位怎么选。
先判断:你的 PDF 为什么大
体积大头通常是这两类之一:
- 扫描件 / 图片型 PDF:每页本质是一张照片,300dpi 扫描一页 2-5MB 很正常。这类压缩收益最大(常能压到 1/5 以下)。
- 文字型 PDF:内容是矢量文本 + 嵌入字体,单页几十 KB。这类文件如果也大,多半是嵌了高清图或冗余字体子集——压缩收益有限,结构优化更对症。
判断方法:用阅读器选中一段文字,能选中就是文字型。
两条压缩路线
| 路线 | 原理 | 质量 | 适合 |
|---|---|---|---|
无损结构优化(useObjectStreams 等) | 重排交叉引用、去冗余对象 | 100% 无损 | 文字型 PDF |
| 有损栅格化 | 每页渲染成图像再重嵌 | 取决于质量档 | 扫描件/图片型 |
多数在线压缩站走栅格化路线。ToolVault PDF 压缩 同样以栅格化为主(这是体积收益的来源),在浏览器本地完成——压缩过程不涉及上传,这对含身份证、合同的文档是本质区别。
三档质量怎么选
以 A4 文档为参照(不同内容差异大,仅作量级参考):
- 高质量(≈150dpi,质量 0.9+):打印、归档、正式提交。肉眼无差别,扫描件通常压到 1/2 - 1/3。
- 中质量(≈120dpi,质量 0.8):屏幕阅读、邮件附件。小字号略有软化,多数场景可接受,常到 1/4 - 1/5。
- 低质量(≈96dpi,质量 0.6):只求「能打开看看」。体积最小,细字开始糊,不建议用于任何要打印的东西。
一条实用纪律:先中档试一次,打开检查关键页(最小的字、图表、印章),不行再升高档。压缩是不可逆操作,永远保留原文件。
压缩的三个真相
- 文字型 PDF 压不动:矢量文本本来就小,栅格化反而可能变大(把文本变成了图像)。这类文件该删的是内嵌的冗余字体。
- 「压缩后反而更大」是正常现象:给本来就优化过的 PDF 做栅格化,图像重编码开销可能超过收益。工具应该如实展示前后体积,而不是假装成功。
- 黑白扫描件用灰度更好:彩色栅格化对黑白内容是浪费。部分工具支持色彩模式选择,扫身份证复印件这类场景选灰度能再省一半。
命令行替代
服务器/本地有环境时,Ghostscript 是重排压缩的标准答案:
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -o out.pdf in.pdf
/screen(96dpi)/ /ebook(150dpi)/ /printer(300dpi)三档与上文对应。脚本化场景它比浏览器工具更合适。
实现注记
做浏览器端压缩时的关键取舍:栅格化的渲染倍率与 JPEG 质量是两个独立旋钮,但用户不该被迫理解两个参数——收敛成三档预设(内部映射到 scale + quality 组合)是更好的产品决策。另一个坑是 canvas 尺寸硬限:高倍率渲染大开本会在部分浏览器得到静默的白图,必须做边长保护性降 scale。压缩前后体积与页数在结果区明示,「压缩率 -3%」这种倒挂结果要如实显示——假装每次都成功比失败更伤信任。
结论
扫描件超限用中档栅格化(ToolVault PDF 压缩,本地不上传),打印用途选高档;文字型 PDF 压缩收益有限,别浪费期待;有命令行环境用 Ghostscript。压缩前留原件,永远。