PDF 压缩档位怎么选 + 为什么压完文字选不了——本工具的 raster 化原理与 3 档预设的实测对照

· 约 5 分钟 🗜️ PDF 压缩

PDF 压缩是日常最高频的文档处理之一——邮件超 20MB 发不出、微信文件超 200MB、网盘空间紧张,临到要发现 PDF 超大才发现要压

本工具给出 high / balanced / extreme 三档预设 + 自定义,完全在浏览器本地运行——不上传、不限页、不限次。但理解原理才能选对档:本工具走的是”每页 raster 化为 JPEG 再合成”路线,胜在普适但有 trade-off

这篇按”原理 → 档位对照 → 何时不该用本工具 → 大文件处理 → 实测对照”五段讲清楚。

工作原理:每页 raster 化

原 PDF                  本工具                 输出 PDF
┌─────────────┐        ┌──────────┐         ┌─────────────┐
│ 文字 (text) │        │ pdf.js   │         │  ❌ 文字层  │
│ 矢量 (path) │ ───►   │ 渲染每页 │ ───►    │ ❌ 矢量层  │
│ 图像 (jpg)  │        │ → canvas │         │ ✅ 整页 JPEG│
└─────────────┘        │ → JPEG   │         └─────────────┘
                       └──────────┘
                       DPI × Quality

关键点

  • 每一页被 pdf.js 渲染成 canvas
  • canvas 用 toBlob('image/jpeg', quality) 转 JPEG
  • 所有 JPEG 拼成新 PDF(一页一图)

收益

  • 对任何来源 PDF 通用(扫描件、Office 导出、设计稿)
  • 压缩比稳定可预测
  • 完全本地,无上传

代价

  • 原文字层丢失——不能选、不能搜、不能高亮、不能复制
  • 矢量图(图表、Logo)变成栅格——放大就糊
  • 屏幕阅读器读不出(访问性丢失)
  • 文档大小可能略涨(如果原 PDF 全是文字 + 矢量)

3 档预设的精确含义

high      DPI 150  Quality 85%   视觉几乎无损 + 体积 30-50% 压缩
balanced  DPI 110  Quality 70%   肉眼略软 + 体积 60-80% 压缩
extreme   DPI 72   Quality 50%   屏幕尚可打印糊 + 体积 85-95% 压缩

DPI 直接决定每页像素

DPIA4 单页像素单页 JPEG 体积(q=0.7)
72595 × 842~ 50 KB
110909 × 1287~ 110 KB
1501240 × 1754~ 200 KB
2001654 × 2339~ 350 KB
3002480 × 3508~ 800 KB

JPEG quality 决定单像素压缩率

Quality视觉感受文件比 q=1.0
0.95视觉无损70%
0.85视觉几乎无损50%
0.70肉眼可见但可接受30%
0.50JPEG 伪影明显18%
0.30文字开始糊10%

两者乘积就是单页最终体积。

实测压缩比(按 PDF 类型)

原 PDF 类型highbalancedextreme
扫描书籍(300 DPI 黑白)20MB / 200 页12MB(-40%)5MB(-75%)2MB(-90%)
扫描合同(200 DPI 彩色)8MB / 5 页4MB(-50%)1.8MB(-78%)0.6MB(-93%)
PPT 导出 PDF(高清图)30MB / 50 页18MB(-40%)7MB(-77%)2.5MB(-92%)
Word 导出 PDF(纯文字)500KB / 20 页800KB(+60%600KB(+20%)400KB(-20%)
简历 PDF(文字 + 单图)200KB / 1 页220KB(+10%)150KB(-25%)90KB(-55%)

两个关键认识

  1. 图像占主的 PDF 压缩比惊人——extreme 档普遍 -90%
  2. 文字 / 矢量主体的 PDF 可能变大——本工具是”raster 化”,文字 raster 化后比原指令格式占空间

什么时候不要用本工具

按权重排:

1. 需要保留文字可选可搜

合同需要复制条款、论文要 Ctrl+F 搜关键词、屏幕阅读器要读——绝对别用本工具。改用:

  • Acrobat Pro 的”减小文件大小”
  • PDF Squeezer(mac)
  • Ghostscript gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook
  • 源文件是 Office 时,从源头导出时勾选”压缩图像”

2. 原 PDF 已经很小(< 5MB)

文字主体 + 体积已经压过——本工具基本压不动甚至变大。

3. 印刷 / 出版用途

extreme 档 72 DPI 打印出来文字毛糙、图片块状——印刷必须 ≥ 300 DPI,本工具做不到(DPI 上限受浏览器内存限制)。

4. 含表单 / 注释 / 书签

本工具 raster 化后所有交互元素丢失——表单不能填、注释看不到、书签消失。要保留这些用 [[pdf-edit]] 单独处理或 Acrobat。

5. 超大文件(> 300 页或 > 100MB)

浏览器内存上限 2-4GB,几百页 PDF 全部渲染到 canvas 会 OOM。先 [[pdf-split]] 拆开,逐份压再 [[pdf-merge]] 合。

输出体积估算公式

预估输出体积 ≈ DPI² / 72² × 单页像素基数 × Quality 系数 × 页数

简化版(A4 全图页):

档位单页约 KB100 页约
high20020 MB
balanced11011 MB
extreme505 MB

反推 DPI:如果想把 200 页文件压到 10MB——目标单页 50KB——查表 ≈ extreme 档。

大文件 / 多页的处理策略

200 页以下

balanced 直接跑——80% 场景一次过。

200-500 页

子策略操作
拆分压缩[[pdf-split]] 拆成 100 页/份,分别压,再 [[pdf-merge]] 合
直接 extreme单次跑通的话最快,但浏览器可能卡
降 DPI 自定义DPI 60-70 + Quality 0.6 单页 30KB,500 页 ≈ 15MB

> 500 页

强烈建议用桌面工具——浏览器内存不够稳。

# Ghostscript(开源跨平台)
gs -sDEVICE=pdfwrite \
   -dCompatibilityLevel=1.5 \
   -dPDFSETTINGS=/ebook \
   -dNOPAUSE -dQUIET -dBATCH \
   -sOutputFile=out.pdf in.pdf

/ebook 档约相当于本工具的 balanced,且保留文字层

5 个常见误判

1. 把 balanced 当 lossless

balanced 用 70% JPEG 质量——肉眼可见(但可接受)的画质下降。真正无损只有桌面工具的”仅压缩 stream”模式,本工具做不到。

2. extreme 用来压印刷件

72 DPI 屏幕看 OK 但打印 A4 后字符边缘锯齿明显。要打印的至少 high

3. 期待”压缩 + 保留文字”

本工具结构决定不可能。两难取其一。

4. 拿来压扫描身份证想缩到 < 1MB

扫描身份证通常 2-5MB,extreme 能压到 200-500KB——够用但隐私问题大永远别把身份证 PDF 上传到任何在线服务,本地处理后用安全渠道传。

5. 用浏览器内存挑战 1000 页 PDF

会卡死浏览器,可能丢未保存的其它 tab 数据。先 [[pdf-split]]。

默认不做的事

  • 不保留文字层——所有页面 raster 化,原文字、矢量、表单元素丢失
  • 不上传任何 PDF——纯浏览器本地处理
  • 不限定页数 / 体积 / 次数——但浏览器内存限制 200-300 页
  • 不识别表单 / 注释 / 书签——这些元素压完都消失,需要保留的话用 [[pdf-edit]]

要保留文字层做”温柔压缩”——用桌面 Acrobat / Ghostscript / PDF Squeezer;要拆分大 PDF 用 [[pdf-split]];要合并多份 PDF 用 [[pdf-merge]];要给 PDF 加密 / 解密用 [[pdf-encrypt]] / [[pdf-decrypt]]。pdf-compress 专攻”普适的 raster 化大幅压缩”——理解它的代价,用对场景就是高效又隐私安全的方案。

❓ 常见问题

为什么压完之后文字不能选 / 不能搜了?这是 bug 吗?

不是 bug,是本工具的工作原理决定的。本工具把 PDF 每一页整页 raster 化为 JPEG 图片再嵌进新的 PDF——原文件里的"文字层"(PDF 里的 text object)全部丢弃,只剩位图。优点:(1) 对任何来源的 PDF(扫描件、Office 导出、设计稿)都能压;(2) 压缩比稳定可预测(取决于 DPI × JPEG 质量)。代价:(1) 文字变图、不可选、不可复制、不可搜索;(2) Ctrl+F 在压完的 PDF 里搜不到任何字;(3) 屏幕阅读器读不出(视障人士访问性丢失)。要保留文字层:用支持"仅压缩图像 / 字体子集化"的桌面工具(Acrobat Pro、PDF Squeezer、Ghostscript),或者源文件就是 LibreOffice / Word 的话从源头导出时勾选"压缩图像"再导。

high / balanced / extreme 3 档预设有什么实质区别?什么场景用哪个?

预设映射:(1) high:DPI 150,JPEG 质量 85%——视觉几乎无损,体积压缩 30-50%。(2) balanced(默认):DPI 110,JPEG 质量 70%——肉眼略微变软但不影响阅读,体积压缩 60-80%。(3) extreme:DPI 72,JPEG 质量 50%——屏幕看尚可,打印会糊,体积压缩 85-95%。场景对应:(a) 邮件附件 < 20MB 限制——balanced 起步,不够再 extreme;(b) 微信群文件 < 200MB——balanced 即可;(c) 网盘存档想保画质——high;(d) 给别人手机看一眼就丢——extreme;(e) 文档要打印——避开 extreme,72 DPI 打印出来会糊。

custom 自定义档位的 DPI 和质量怎么选才合适?

两条经验法则。(1) DPI 决定"屏幕显示清晰度":72 = 屏幕老 mac、96 = 屏幕 Windows、110 = 平板平均、150 = 打印底线(看不出网点)、200+ = 印刷质量。手机阅读 90 DPI 够用;打印复印 150 起步;正式出版 300+。(2) JPEG 质量决定"压缩率与画质平衡":0.85 = 视觉无损、0.70 = 肉眼有点软、0.50 = 明显有 JPEG 块状伪影、0.30 = 文字开始糊。推荐组合:屏幕看 110+0.70(=balanced)、打印 150+0.85(=high)、极限省空间 72+0.50(=extreme)、有照片的彩页 150+0.75。底线:DPI < 72 或质量 < 0.4 就别用,可读性已经破坏。

为什么我 PDF 只有 2MB 用 extreme 也压不下来 / 只小了一点?

两类原因:(1) 原 PDF 已经被压过——你的 2MB PDF 内部图像可能已经是 80 DPI JPEG 了,再压到 72 DPI 体积下降微弱。从体积逆推原始 DPI:2MB / 30 页 ≈ 70KB/页,约等于 800×1000 像素 JPEG q=0.7——基本就是 100 DPI 起步,再压空间有限。(2) PDF 主要是文字 / 矢量——文字和矢量图在原始 PDF 里以"指令"形式存储("在坐标 X 画字符 A"),通常只占几 KB;本工具把它们 raster 化反而可能变大(特别是低页数 + 高 DPI 时)。判断方法:如果 PDF 大部分是文字、原体积 < 5MB——别用本工具,体积下降几乎为零甚至反向上升。

本工具能处理多大的 PDF?为什么压几百页的 PDF 会崩溃?

实测上限约 200-300 页或原文件 100MB——超过会显著卡顿或浏览器崩溃。根本原因:本工具完全在浏览器内运行,PDF 解码后所有页面同时驻留内存——每页 1080×1400 像素的 canvas = 6MB,300 页 = 1.8GB,多数浏览器 tab 内存上限 2-4GB,逼近就崩。应对策略:(1) 拆分:先用 [[pdf-split]] 把大 PDF 拆成多个 < 100 页的文件,分别压;(2) 降 DPI:custom 档把 DPI 降到 90 以下,单页内存占用减半;(3) 关其它 tab:浏览器内存是共享的,开 30 个 tab 时内存早被吃光;(4) 大文件用桌面工具:> 300 页的书稿、扫描卷宗,用 Acrobat / Ghostscript / PDF Squeezer,不要勉强浏览器。

为什么本地压缩比上传到 ilovepdf / smallpdf 慢?这些网站是不是更聪明?

速度差:在线服务把 PDF 处理放到服务器集群,多核并行 + 编译型语言(C / Go)——单文件几秒搞定。本工具用 JS 在浏览器单线程里跑,100 页 PDF 大约 30-60 秒但本工具的核心价值是隐私:(1) PDF 一字节不上传——合同、身份证、对账单这类敏感文件用在线服务有上传风险(即便对方承诺删除,传输和处理过程中已暴露)。(2) 关掉网络也能用——下载页面后断网仍可压缩。(3) 不限页数 / 大小 / 次数——免费版 smallpdf 等限页数限频次。经验法则:含个人信息 / 商业机密的 PDF 用本工具;普通公开文档(电子书、说明书)追求速度可用在线服务。

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

📖 同一工具的其他教程