上周要把一份扫描合同发邮件,附件太大被退信。用 NBTools 的 PDF 压缩工具 在浏览器里压了一遍,选"中"档后体积明显减小、文字仍清晰、能正常发送。下面把我摸索出来的选档逻辑和踩过的坑写下来。
为什么有的 PDF 能压、有的压不动
PDF 体积主要被两类内容撑大,压缩手段完全不同:
- 图片/扫描件:扫描件本质是"一张张图塞进 PDF",占体积的几乎全是图片。降低分辨率(DPI)和图像质量最能压体积,代价是图片变糊。
- 字体与矢量内容:纯文字、用矢量绘制的图表,压缩空间很小,强行压只会拖慢速度、几乎不掉体积。
- 冗余资源:重复内嵌的字体、无用元数据,工具会自动去重清理,这部分"免费"瘦身。
我那份合同是扫描件,所以压得很明显。如果是纯文字论文(文字可选中、不是图片),基本压不下来,这种情况别硬压。
低/中/高三级怎么选
NBTools 把 Ghostscript 的参数封装成三档,对应不同取舍:
| 档位 | 适合场景 | 体积 | 清晰度 |
|---|---|---|---|
| 低(最佳质量) | 文字合同、需二次打印 | 略减 | 画质最佳,损失极小 |
| 中(均衡) | 邮件发送、微信传输 | 明显减小 | 文字清晰、图略糊 |
| 高(最小体积) | 仅预览/存档 | 最小 | 图片明显压缩 |
我的经验:先选"中",下载后放大看关键页。能接受就发;还太大就升"高";要保留高清扫描件就选"低"。不确定就别一上来选"高"——压糊了原图反而找不回。
操作步骤
- 上传:把 PDF 拖进页面,单文件。
- 选档:低/中/高,按上面逻辑选。
- 压缩:点"开始压缩",浏览器本地用 Ghostscript 引擎处理,进度条显示页码。
- 下载:完成后看原始/输出大小和节省比例,点下载。
全程文件不离开你的电脑——压缩在浏览器里跑,不像 iLovePDF、Smallpdf 要把文件传到服务器。这一点对合同、证件这类敏感文件很重要。
压不动怎么办
- 纯文字 PDF 几乎压不动:内容本就很精简,换"高"档也有限。需要更小就转成图片再压,但会丢文字可选中能力。
- 加密/带权限的 PDF:工具需要先能读取内容。带打开密码或编辑限制的 PDF 处理不了,先去掉限制再压。
- 特别大的扫描件:页数很多时本地处理受内存限制,可分批用 PDF 拆分 拆小再各自压缩。
和云端压缩工具的区别
云端工具(iLovePDF、Smallpdf 等)要上传文件到它们的服务器再处理。NBTools 在浏览器本地用 Ghostscript 引擎压缩,文件不上传,隐私更稳,也不用排队。代价是吃你电脑的性能——超大文件会比云端慢一点,但数据不出本机。
常见问题
压缩后文字变模糊了
说明原文件是扫描件/图片型 PDF,且选了"高"档把图片压狠了。改用"中"或"低"档重压,文字清晰度会回来。
为什么我的 PDF 压完几乎没变小
多半是纯文字或矢量图为主的 PDF,本身体积就精简。也可检查是否选了"低"档;若是纯文字文档,压缩空间本来就有限。
加密的 PDF 能压吗
带打开密码或编辑限制的 PDF 工具读不到内容,处理不了。请先在能打开的前提下去掉密码/限制再压缩。
文件会上传到服务器吗
不会。压缩完全在浏览器本地通过 Ghostscript 引擎完成,文件不离开你的设备。
有文件大小或页数限制吗
没有硬性上限,受你电脑内存限制。特别大的扫描件建议先用 PDF 拆分拆小再压。
开源致谢与协议
本文介绍的压缩功能基于开源项目 louisprp/shrinkpdf 修改而来,沿用了其 Ghostscript-WASM 压缩内核,仅调整了界面样式与集成方式。
原项目以 GNU Affero General Public License v3.0(AGPLv3) 授权;Ghostscript 引擎由 Artifex Software 以 AGPL 协议发布。
依据 AGPLv3 第 13 条,本服务运行版本的对应源代码(含 Ghostscript-WASM 构建)已公开于 shrinkpdf。
工具入口
PDF转文本立即使用 →提取PDF文字与表格,支持扫描件OCR