约 8 分钟读完 · 更新于 2026-10-21 · 文中每条都能在下面的配套工具里动手验证
PDF 不是一种固定结构,它更像一个容器。把体积拆开看,只有三个来源:图片(截图、扫描件、照片,通常占 70% 到 90%)、字体(嵌入完整字库的话,一个中文字体 5MB 起步,用得多的子集化能压到几百 KB)、以及内容流本身(排版指令、标注、表单数据,纯文字 PDF 通常只有几十到几百 KB)。搞清是哪一类占大头,才知道该动哪里:图片问题去降分辨率或转格式,字体问题去做子集化,内容流超标多半是嵌了一堆看不见的元数据和编辑器残留。拿 <a class="faq-link" href="/tools/pdf-toolbox/">PDF 工具箱</a> 导出后先用文件管理器看一眼构成,或者对比「原文件」与「导出后」的体积,能快速定位方向。
顺序不是审美问题,是成本问题。先合并再拆分意味着同一份数据只解析一次;先压缩再合并,等于把每份文件都压一遍,多花几倍时间还多累积几次有损损失;先加密再压缩几乎必然失败,因为加密后的内容流已经不能被重写,压缩工具读不懂。唯一需要调整的是加密与导出的先后:如果最终还要在别的软件里二次编辑,就先别加密;确定交付了再加密码。
| 操作 | 目的 | 关键参数 | 最容易踩的坑 |
|---|---|---|---|
| 合并 | 把多个 PDF 拼成一份 | 页序、是否保留书签 | 拖入顺序 ≠ 期望顺序;合并后书签全丢 |
| 拆分 | 抽出需要的页面 | 按页码区间或按大纲层级 | 「导出为图片」和「拆成 PDF」不是一回事 |
| 压缩 | 减小体积 | 图片分辨率、DPI、质量档 | 反复压缩同一份文件,画质不可逆地掉 |
| 加密 | 限制打开或编辑权限 | 打开口令、权限口令 | 不是所有 PDF 都能加密(受限模式不支持) |
| 转图片 | 做预览或二次编辑 | DPI、格式 | DPI 太低导致文字发虚、放大模糊 |
| 加水印 | 标注归属或草稿状态 | 位置、透明度、密度 | 压太实反而挡住正文,务必半透明 |
合并时最常见的失望是两件事:页序不对,以及书签没了。页序问题在拖入列表里解决——按文件名排序时「10」会排在「2」前面,用两位数或带序号的命名(01、02)能彻底避免。书签丢失的原因是各份文件的目录结构是独立的,合并时没有任何通用规则能猜出它们怎么接起来;正确做法是在源文件里先修好大纲,或者接受合并后没有书签,交付时另附一份目录说明。另一类实用技巧是「只合需要的页」:先拆分再合并,比合并后再删页面省时间,也避免了在成品里留下本不该出现的内容。
扫描件和照片型 PDF 占 PDF 体积的大头,但它们压不动的原因不是工具不行,而是内容已经接近不可再压:扫描本身已经把文字渲染成 300DPI 的点阵,JPEG 已经在这一步被有损压缩过一次,再压只是重复损伤。要真正减重,得回到「重新生成」而不是「重新压缩」——把页数少、画质要求不高的扫描件降 DPI 到 150、把里面的图片单独提取出来压到目标大小再塞回去,或者干脆把「文字型 PDF」转成「长图 PDF」,牺牲文字可选换来大幅减重。纯文字 PDF 几乎不用压,它的小体积来自字体子集化;真遇到几十 MB 的纯文字文件,去掉嵌字体通常一秒见效。
加密常被误解为「给 PDF 上锁」,实际有两个独立维度:打开口令(没有它就打不开)和权限口令(能打开但不能打印、复制、编辑、批注)。两者不是一个开关,多数工具只提供其中一个。更关键的是前置条件:以受限模式打开的 PDF、被某些 DRM 系统签名的 PDF、以及某些第三方阅读器生成的文件,本身就不允许被改写或加密,工具会直接报错——这不是工具的问题,是文件内部的权限标志锁死了修改权限。遇到这种情况,唯一的办法是从源文件重新生成一份再去加密。用 <a class="faq-link" href="/tools/pdf-toolbox/">PDF 工具箱</a> 时把这两件事分清,能省掉一次「加了密码却还是能复制」的困惑。
# 合并(用 -- 前缀指定输入顺序,数字决定先后) qpdf --empty --pages a.pdf 1-3 b.pdf 1 -- out.pdf # 拆出指定页 qpdf a.pdf --pages a.pdf 2-4 -- out.pdf # 线性化:让网页预览按页加载,体积略增但打开更快 qpdf --linearize out.pdf out-lin.pdf # 加密:-user-pw 是打开口令,-owner-pw 是权限口令 qpdf --encrypt user_pwd owner_pw 128 -- out.pdf # 纯文字 PDF 掉体积:解嵌字体(注意:换设备可能显示异常) qpdf --font-embed=none --decode-level=all out.pdf out-nofont.pdf # 图片型 PDF:先抽图压到目标大小,再无损重封装(质量远好于重压 PDF) pdfimages -all in.pdf img img2pdf --output-size=25 img-*.jpg -- > out.pdf
体积大 + 纯文字 + 字体完整嵌入 → 字体子集化 / 解嵌(改动最小) 体积大 + 少量图片 → 抽图压到目标大小后重封装 体积大 + 整份扫描件 → 降 DPI 重新扫描,或转长图 PDF 需要保密分发 → 合并/拆分完成后,最后一步加打开口令 需要禁止打印复制 → 权限口令,弱保护,别当作安全措施
压缩的目标是「在可接受画质下尽量小」,不是「越小越好」。有几个信号说明该停:连续压两次之后体积几乎不再下降(说明已到信息熵极限)、正文小字开始发虚发毛边、线框图和表格线出现锯齿、或者文件要被拿去打印。这些场景里继续压只会换一个更糟的问题。反过来,如果文件只在网上传阅、没人放大看、且要过上传大小限制,那就该把「可接受画质」设成一个明确的 KB 目标,用 <a class="faq-link" href="/tools/image-kb/">压到指定大小</a>这类自动迭代的方式一次到位,比手动一点点降质量更快也更可控。
页序取决于文件的加入顺序,先在合并前把文件按目标顺序重命名,用两位数序号(01、02、03)而不是默认文件名,排序错乱的根因基本就消除了。合并后书签丢失是正常现象——各份文件的目录结构独立,没有通用规则能推断怎么接起来,需要书签的话要在源文件里先整理好,或者交付时另附一份目录说明。
先看它是哪一类:纯文字 PDF 的体积来自嵌入字体,一个中文字体 5MB 起,去做子集化或解嵌通常一秒见效;扫描件压不动是因为它已经是 300DPI 点阵加过一次 JPEG 压缩,属于接近不可再压的状态,这时候该降 DPI 重新生成或把图片抽出来压到目标大小再封装,而不是继续压 PDF。文件里如果嵌了大段编辑器元数据,也可以先清掉。
因为打开口令和权限口令不是一回事。你加的如果只是权限口令,对方照样能打开文件,只是部分编辑被限制;要真正阻止打开需要设打开口令。另外 PDF 权限本质上只约束合规的阅读器,不阻止文本复制,属于防误操作级别而不是加密级别,需要真正保护内容就不要依赖这个。
别对 PDF 本身反复压。正确做法是把里面的扫描图抽出来,降到 150 到 200 DPI,压到目标 KB 再重新封装成 PDF,画质损失远小于直接压成品。如果这份文件不需要文字可选,直接转成整页长图 PDF 通常能再省一大截;如果需要全文可搜索,就把 OCR 后的文字层加上,同时把原始图换成低分辨率版本。