PDF 压缩到 1MB 的三种思路:扫描件降采样、字体子集化、对象去重

· 约 4 分钟 🗜️ PDF 压缩

PDF 压缩工具结果不稳定,根因是 PDF 体积来自三个独立维度——压错地方等于没压。先看肥在哪,再选对策略,1-3 分钟能从 10MB 压到 1MB。

PDF 体积构成

随便拿一份 PDF,体积一般来自:

来源占比典型值触发场景
嵌入字体30%-80%用了思源黑体 / Noto / 等中文字体
图像20%-99%扫描件、含截图的报告、内嵌图表
对象冗余 / 旧版本流5%-30%多次另存为、协作编辑过的 PDF
文本层 + 矢量图< 5%几乎可忽略

判断当前 PDF 胖在哪,最简单:用 PDF 阅读器另存为后看体积变化——Adobe 的”减小文件大小”会先显示各部分占比;Mac Preview 的”压缩 PDF”是激进 JPEG 重压。

三种压缩思路

思路一:扫描件 → 降采样 + JPEG 重压

扫描件的 PDF 内部就是一张张大图。压缩流程:

  1. 降低分辨率:300 DPI → 150 DPI 体积降 75%(4 倍像素差),打印够用
  2. 彩色 → 灰度 / 黑白:纯文字扫描件转黑白,再走 CCITT G4 编码,体积可降 90%
  3. JPEG 重压:彩色照片质量 75-85 是甜点区,质量 50 以下开始可见块状伪影
  4. MRC(混合栅格内容):把文字层和图像分开——文字用 G4 编码,图像用 JPEG2000,再合成。商业工具的”杀器”

实测一份 50 页彩色合同扫描件:

处理体积
原始(300 DPI 彩色无压缩)145 MB
150 DPI 彩色 JPEG 8518 MB
150 DPI 灰度 JPEG 809 MB
150 DPI 黑白 G41.8 MB
150 DPI MRC1.2 MB

纯文字扫描件直接走黑白 + G4,是最高 ROI 的一步。

思路二:嵌入字体 → 子集化

中文字体一套 4-8 MB,PDF 默认完整嵌入。子集化是只保留实际用到的字符:

完整思源黑体 Bold:    8.3 MB
子集(用到的 1200 字): 0.18 MB

子集化几乎无损——除非有人后续编辑这份 PDF 添加新字符(这种情况下新字符会找不到字形)。

操作上:

  • Word / WPS 导出 PDF 时勾选”嵌入字体子集”,体积差距立竿见影
  • 已经导出的 PDF 用 Acrobat 的”PDF 优化”或 Ghostscript 重新转译
# Ghostscript 强制子集化
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.6 \
   -dSubsetFonts=true -dEmbedAllFonts=true \
   -sOutputFile=out.pdf in.pdf

子集化对矢量类 PDF(Word / LaTeX / Markdown 导出)效果最显著,能把体积砍 70%-90%。

思路三:流压缩 + 对象去重

PDF 是对象数据库,多次保存后会有大量”被覆盖但仍残留”的旧对象。Linearize 一次能彻底清理:

qpdf --linearize --object-streams=generate in.pdf out.pdf

--linearize 重排对象,--object-streams=generate 把多个小对象合并成压缩流。对协作编辑过的 PDF 体积常降 20%-40%,对干净导出的影响很小。

三档质量怎么选

本工具的三档质量大致对应:

档位DPIJPEG quality用途
高质量20085打印、归档、文档分发
标准15075邮件附件、网盘分享
极致压缩9660快速预览、提交 OA 系统

选档原则

  1. 要打印 → 高质量。低于 200 DPI 打印有明显锯齿
  2. 要给人看 / 邮件附件 → 标准。150 DPI 在屏幕上和 300 DPI 差异极小
  3. OA 系统限制 1-2 MB → 极致。先试一档不够再加力

各类型典型瘦身路径

PDF 来源主要肥点推荐策略
Word / WPS 导出嵌入字体字体子集化 + 流压缩
LaTeX / Markdown 导出字体字体子集化(通常自动)
Photoshop / Illustrator 导出嵌入图像降采样 + JPEG 重压
扫描仪输出(彩色文字)图像灰度 + 200 DPI
扫描仪输出(纯黑白文字)图像黑白 G4
网页打印(Chrome 另存 PDF)嵌入字体 + 图像子集化 + JPEG 重压
多人协作过的版本旧对象残留流压缩 + linearize

不要做的事

  1. 不要把矢量 PDF 变图像 PDF 压缩:失去文字层就不能搜索 / 复制 / OCR
  2. 不要质量 < 50 的 JPEG:眼睛看得出块状伪影,文字边缘出现糊点
  3. 不要 96 DPI 以下:A4 200×280mm 在 96 DPI 下是 800×1100 像素,再低连屏幕显示都糊
  4. 不要相信”无损 90% 压缩”广告:物理上不可能。无损压缩对常规 PDF 极限是 30%-50%
  5. 不要重复压缩同一份 PDF:JPEG 重压每次都损失质量,第三次后可见伪影

一句话总结

PDF 胖在哪决定怎么压:扫描件降 DPI、矢量文档子集化字体、协作版本走流压缩;混着压不如先看一眼。

❓ 常见问题

为什么我的 PDF 怎么压都压不小?

PDF 的体积来自三个独立维度——图像数据、嵌入字体、对象冗余。压缩工具如果只针对一个维度,碰到其他维度肥的文件就没用。比如纯扫描件的 PDF 体积 99% 来自图像,调字体子集没用;含整套思源黑体的 PDF 字体就占 4-8MB,但很多压缩工具不动字体。先用工具看一眼"哪一项最大",再选对应策略。

PDF 压缩会损失质量吗?

看压什么。字体子集化(保留用到的字符)几乎无损;对象去重 / 流压缩完全无损;图像降采样和重压有损,但 150 DPI 的扫描件压到 96 DPI、JPEG 质量从 100 降到 70,肉眼几乎看不出来。问题是工具默认参数太激进——很多在线服务把所有图都压成 72 DPI、quality 50,文档体积小了但放大就糊。本工具提供三档质量档位,自己选合适的力度。

为什么扫描的 PDF 比原图加起来还大?

扫描仪默认输出 300 DPI 全色 + 无压缩 / TIFF,单页 A4 解码后约 25MB;即使 PDF 内部封装成 JPEG2000 也常 1-2MB / 页。改用黑白扫描或下采样到 200 DPI,单页降到 100KB 量级;再用 MRC(混合栅格内容)把文字层与图像分离编码,体积可再降一半。 商业扫描软件 ABBYY、Adobe Acrobat 默认开 MRC,免费工具大部分不开。

在线工具上传 PDF 安全吗?

看工具是否上传到服务器。纯前端处理的工具(包括本工具)所有计算在浏览器里完成,PDF 不离开你的电脑;云端处理的工具会把 PDF 上传到服务器,敏感文档(合同、身份证扫描件、医疗报告)走云端有泄漏风险。判断方式:上传几百 MB 的文件如果几秒就开始处理,多半是云端;如果先卡住一会儿才动,多半是浏览器在加载本地处理。

🗜️ 打开 PDF 压缩 三档质量 · 扫描件瘦身 · 本地处理