☰
PDF压缩实战:从体积诊断到参数调优与验收
2026/10/28 14:29:23 网站建设 项目流程

上周帮人处理一份八十多兆的投标材料,附件上限卡在二十兆,对方连着发了三次都失败,最后是我在本地重跑了一遍才把文件压到十五兆以内发出去。这种事我一年要遇上几十回——论文投稿、简历投递、报销单据、图纸交付、电子发票归档,几乎每个需要"把 PDF 塞进某个通道"的场景,最后都会落到同一个问题上:这份文件为什么这么大,我到底该在哪一端动刀。

这篇东西写给两类人。一类是偶尔被文件大小卡住、想找一条能立刻走通的路的普通用户;另一类是需要批量处理、又担心压坏了交付物的从业者。我不会给你一串软件名单让你自己试,那没意义,名单三个月就过时一批。我讲的是判断方法:先看清体积花在哪儿,再决定用无损还是有损,然后才是电脑端、网页端、手机端各自怎么落地,最后是怎么验收。把这套逻辑吃透,工具换成什么你都能用。

1. 先搞清楚 PDF 的体积到底花在哪儿了

压缩这件事最忌讳上来就点按钮。你得先知道对面这份文件是"胖在骨头"还是"胖在肥肉"。PDF 的体积来源可以粗暴分成三块:页面里的图像数据、嵌入的字体、以及各种结构性冗余。这三块的处理方式完全不同,用错方法就是白忙一场,甚至越压越大。

我一般的判断顺序是:先看页数和体积的比值,再看能不能选中文字,最后放大到 400% 看文字边缘有没有锯齿。这三步花不了一分钟,但能省掉后面半小时的试错。

1.1 一张扫描图能顶掉整本文档的九成体积

一份 A4 尺寸、300 DPI 的彩色扫描页,像素尺寸大约 2480×3508,接近八百七十万个像素点。如果没有做任何有损压缩,按每像素三字节算,单页原始数据就是二十六兆上下。二十页这样的文件,一百多兆是正常水平。

而同样二十页的纯电子文档——Word 导出的那种,文字是矢量的、字体是嵌入的——通常只有几百 KB 到两三兆。差距是五十倍以上,不是十倍。所以有个经验值很好用:如果你的 PDF 平均每页超过 1 MB,它八成是图片型的;如果平均每页只有几十 KB,那它是文字型的,压不出多少空间,别折腾了。

图片型 PDF 又分几种情况。彩色扫描件是最肥的,因为保留了三通道信息;灰度扫描件体积大约是十分之一;黑白二值扫描件(就是那种纯黑白、没有灰阶的)可以小到彩色件的五十分之一。很多人不知道,把一份纯文字扫描件从彩色转成黑白二值,体积能直接掉一个数量级,而且文字反而更锐利——因为灰阶噪点被清掉了。

还有一类容易被误判:用手机拍的照片直接转成的 PDF。这种文件的每一页都是一张高分辨率 JPEG,透视变形还没矫正,背景带着桌面、手指、阴影,压缩算法要把这些无用信息也一并编码,白白吃掉大量空间。遇到这种文件,正确的做法不是压,是重新处理图像本身。

1.2 字体嵌入、增量更新和看不见的冗余对象

文字型 PDF 的体积大头在字体。一个完整的中文字库动辄十几兆,如果工具没做子集化,把整个字库塞进去,那你一份三页的合同也能有二十兆。正常的导出流程会自动做字体子集化,只保留文档里实际用到的字形,通常能压到几十 KB 到几百 KB。

但有些来源的文件没这么规矩。比如某些系统自带的"打印为 PDF"功能,或者经过多轮转换的文件,可能嵌入好几套完整字库,其中大部分字形根本没用上。这种文件你打开看内容只有五页,体积却有三十兆,全靠字体撑着。

另一种隐性膨胀是增量更新。PDF 允许在不重写整个文件的前提下追加修改——你加个批注、签个名、填个表单,工具就在文件末尾追加一段新数据,旧的对象原封不动留在那里。改十次,文件里就有十份历史数据。这类文件的典型特征是:你用不同软件打开,看到的批注数量可能不一致;或者明明删掉了某些页面,体积一点没减。

处理办法很简单:用"另存为"或者"打印到 PDF"的方式重新生成一遍,把所有历史对象清掉。这一步经常能白捡 20% 到 40% 的体积,而且完全无损。

1.3 用三步自查判断你的文件属于哪一类

我把这套自查整理成了一张表,你可以直接对着做:

观察项现象说明
平均每页体积大于 1 MB图片型,压缩空间大
平均每页体积100 KB 到 1 MB混合型,可能图文都有
平均每页体积小于 100 KB文字型,基本压不动
能否选中并复制文字能,且复制出来是正常文字有真实文字层
能否选中并复制文字能,但复制出来是乱码或空白有 OCR 层但质量存疑
能否选中并复制文字完全选不中纯图像,无文字层
放大到 400% 看正文边缘锐利、无彩色噪点可能是矢量或高质量图像
放大到 400% 看正文有锯齿、边缘带彩色杂点低质量 JPEG,重压会更糊
放大到 400% 看正文灰底、字边发虚扫描件,适合转二值

最后一行那个"灰底发虚"很关键。很多扫描件因为拍摄时曝光不准,纸面不是纯白而是浅灰,压缩算法会把这些灰阶当成有效信息认真编码,白白浪费体积。这类文件先做一次对比度增强或者自适应二值化,体积能掉一大截,视觉上还更干净。

2. 无损压缩和有损压缩:一条不能混着走的岔路

这两条路的差别,用过的人都知道,但真正理解边界的人不多。无损压缩是重新组织数据、不改动任何一个像素;有损压缩是扔掉信息、换取体积。前者安全但收益有限,后者收益巨大但不可逆。

麻烦在于,市面上的工具经常把两者混在一个"一键压缩"按钮里,你按下去根本不知道它动了什么。等发现交付物里的图表模糊了、印章颜色偏了,已经来不及了。所以我习惯把它们分开做:先跑一遍无损,看看够不够;不够再上参数化的有损,而且必须留原文件。

2.1 结构优化做到头也就省下百分之十几

无损这条路能做的事其实很有限,无非是几项:

  • 重压缩数据流。PDF 内部的文本流、矢量图形指令默认用 Flate 算法压缩,不同工具的压缩级别不一样,重新用更高级别压一遍能省一点,通常 3% 到 8%。
  • 去重相同对象。文档里重复出现的图像、相同的字体子集、重复的资源字典,合并掉。多页文档里重复页眉页脚图片的情况很常见。
  • 清理孤立对象。删掉没被任何页面引用的图像和字体——这些多半是编辑历史留下的垃圾。
  • 移除缩略图。某些工具会为每页生成一张预览小图存进文件,页数多的时候这部分能占好几兆,而它完全不影响阅读。
  • 字体子集化。前面说过,收益可能很大,但要看源文件情况。

这几项加起来,典型收益在 5% 到 20% 之间。如果你的文件是图片型且图像本身已经是高质量 JPEG,无损压缩基本没救,别在这条路上耗。

有个例外值得单独说:如果你的文件是"重复保存"造成的膨胀,无损重写能带来远超 20% 的收益。我见过一份四十多页的文档,因为反复添加批注和签名,体积涨到六十多兆,重新生成一遍只剩四兆。这种情况用"打印到 PDF"就行,但要注意打印会丢掉书签、表单域和链接,只适合纯阅读用途的文件。

2.2 降采样与重编码:真正见效但不可逆的那一刀

有损压缩的核心动作就两个:降低图像分辨率,和降低图像编码质量。

降采样的原理是把多个像素合并成一个。一张 300 DPI 的扫描图降到 150 DPI,像素数量变成四分之一,体积大致也降到四分之一。降到 100 DPI 就是九分之一。这是见效最快的一刀,也是最容易伤到文字的——文字边缘的高频信息在合并像素时最先损失,所以你经常看到"图还清楚,字先糊了"。

重编码是把原来的图像数据解出来,用更低的质量参数重新压一遍。这里有个坑:JPEG 是有代际损失的。一张已经是质量 70 的 JPEG,你再用质量 80 重压一次,体积可能不降反升,而画质只会更差。因为解码再编码会引入新的量化误差,同时原图已经丢掉的细节找不回来了。所以重编码要一次性到位,别来回折腾。

比较稳的做法是:源图如果是无损格式(PNG、TIFF、Flate 编码),可以放心重编码成 JPEG,质量取 80 到 85,肉眼几乎看不出差别;源图如果已经是 JPEG,先看它原来的量化表——很多工具能读出原始质量估计值,如果已经低于 75,就别再压了,转而去降分辨率更划算。

还有一种特殊手段:色彩空间降维。彩色转灰度,三通道变单通道,体积直接掉三分之二。灰度转二值(黑白),每像素从 8 位变 1 位,再配合 JBIG2 或 CCITT 这类专为二值图像设计的编码,体积能掉到原来的十分之一甚至更少。纯文字的扫描件、传真件、老档案,用这一招效果惊人。

但要注意使用场景。带彩色印章、手写批注、彩色表格线的文件,转二值会把印章变成一团黑块,那就废了。转灰度相对安全,但如果图里有靠颜色区分的信息(比如红蓝两色的流程图),转灰度后就分不清了。

2.3 按用途倒推参数:屏幕、打印、归档三档

参数不是拍脑袋定的,是从"这份文件最终怎么被看"倒推出来的。我把自己常用的三档整理在下面:

用途图像分辨率编码质量色彩典型收益
屏幕阅读、邮件传输96 到 150 DPIJPEG 75 到 82保持彩色体积降到原文件 10% 到 25%
常规打印、合同签署200 到 300 DPIJPEG 85 到 90保持彩色体积降到 30% 到 50%
长期归档、二次编辑300 DPI 以上无损或 JPEG 95保持原色彩空间只做无损优化
纯文字扫描件300 DPI二值无损编码黑白体积降到 5% 到 10%
大幅面图纸、海报150 到 200 DPIJPEG 80保持彩色体积降到 20% 到 40%

这里面的逻辑值得说清楚。屏幕阅读为什么要 150 DPI?因为普通显示器在正常观看距离下,肉眼能分辨的极限大概对应 130 到 160 DPI 的印刷分辨率,再高就是浪费。打印为什么至少要 200 DPI?因为打印机的最小墨点比屏幕像素小得多,低于这个值会出现明显的边缘毛刺。归档为什么要求无损?因为归档件可能要十年后重新提取,任何不可逆的损失都可能在未来的新设备上暴露出来。

大幅面图纸那一档容易被忽略。一张 A1 图纸如果按 300 DPI 存,像素尺寸是 9933×7016,接近七千万像素,一张就二十多兆。但这类文件通常是贴在墙上或者铺在桌上看,观看距离比 A4 远得多,150 DPI 完全够用,体积能降到四分之一。分辨率的需求跟观看距离成反比,这个直觉很有用。

3. 电脑端的三种打法:图形界面、命令行、办公软件导出

桌面端是处理这类文件的主力,因为算力和内存都够,能跑批量、能精细控制参数。我把它分成三种打法,各有各的适用范围,选错了会浪费大量时间。

3.1 图形界面工具适合一次性处理,但要盯住三个开关

图形界面的好处是所见即所得,能实时预览压缩前后的效果对比。适合文件数量少、对结果不确定、需要肉眼确认的场景。

但这类工具的参数往往藏得很深,默认值也未必合理。我每次用新工具都会先找这三个开关:

第一个是目标分辨率或者"图像质量"档位。有些工具只给"低/中/高/最佳"四档,你得知道它背后对应什么。我的做法是拿一份已知参数的文件试一次,压完读一下输出文件的图像 DPI,就知道档位对应关系了。这一步不能省,否则批量处理时会翻车。

第二个是是否允许转换色彩空间。有些工具默认会把 CMYK 转成 RGB 以减小体积,单看屏幕没问题,但如果这份文件要送印刷厂,CMYK 转 RGB 会导致印刷偏色。带印刷用途的文件,这个开关必须关掉。

第三个是结构保留选项,包括书签、表单域、注释、超链接、附件、逻辑结构树(无障碍阅读用的)。压缩工具为了简化处理,经常默认把这些扁平化掉。带交互表单的申请表、带书签的手册、带附件标签的电子发票,压完这些东西没了,等于报废。

提示:图形界面工具压完的文件,默认建议另存为新文件而不是覆盖原文件。我见过不止一次有人误操作把原稿覆盖了,然后发现压缩过度想找回原图,已经没戏了。

3.2 命令行批处理:把一百个文件塞进一条循环里

文件超过二十份,图形界面就不划算了,点鼠标点到手酸还容易漏。这时候上命令行。

各家工具的选项命名不一样,但核心参数就那几个:输入输出路径、目标 DPI、图像质量、色彩转换开关、结构保留开关。下面用通用的参数写法示意流程,你按自己手上工具的实际选项名替换即可:

# 单文件处理:目标 150 DPI,JPEG 质量 80,保留彩色和书签 pdf-optimize \ --input report_original.pdf \ --output report_compressed.pdf \ --image-dpi 150 \ --jpeg-quality 80 \ --color-mode keep \ --keep-outline \ --keep-forms

批量处理就用一层循环包起来,输出目录跟源目录分开,避免覆盖:

#!/bin/bash # 批量压缩:遍历当前目录所有 PDF,输出到 compressed 子目录 mkdir -p compressed for f in *.pdf; do base="${f%.pdf}" pdf-optimize \ --input "$f" \ --output "compressed/${base}_c.pdf" \ --image-dpi 150 \ --jpeg-quality 80 \ --color-mode keep \ --keep-outline echo "done: $f" done

这套流程真正的价值在于可复现。你把参数写进脚本存起来,半年后再处理同类文件,直接跑就行,不用回忆上次用了什么设置。我自己的做法是按用途维护几个脚本:投稿用的、归档用的、屏幕阅读用的,各自带不同的参数组。

跑完批量之后一定要做体积对比,而不是盲信。下面这段可以做简单的体积统计:

# 对比压缩前后的总体积 du -sh original_dir/ compressed_dir/

如果发现某几个文件压完反而变大了,单独拎出来看,多半是源文件已经是高压缩比,或者工具在处理小文件时加了额外开销。具体情况第 6 章会详细说。

3.3 从源头控制:排版软件导出时的图像压缩设置

最省事的压缩,是不让文件变胖。如果你手上有源文件(Word、排版软件、设计稿),直接在导出环节控制,比事后压好得多。

导出为 PDF 时通常有一个"图像压缩"选项卡,里面有三组设置:彩色图像、灰度图像、单色图像。每组都有"下采样方式"和"压缩方式"两个维度。下采样方式一般有"不降采样""平均值""双立方""次采样"几种,印刷用途选"双立方"(保留细节多),屏幕用途选"平均值"(噪点少、体积小)。

压缩方式里,ZIP 是无损的(适合纯色块、线条图、截图),JPEG 是有损的(适合照片)。这里有个常见的错误:把包含大块纯色和文字的截图用 JPEG 压缩,结果文字边缘出现彩色杂点。正确的做法是让工具自动判断,或者按图像类型分开设置——大部分工具提供"自动"选项。

还有一个下采样阈值要设对。默认值常见的是"高于 300 DPI 的图像降采样到 300 DPI"或者"高于 450 DPI 降到 300 DPI"。如果你明确知道这份文件只用于屏幕阅读,可以把阈值设成"高于 150 DPI 的降到 150 DPI",导出体积能小一大截。反过来,如果要印刷,阈值就得往上提,避免把本来 600 DPI 的精细图降到 300。

字体那边也有个开关:嵌入字体时选择"仅嵌入文档中使用的字符"(子集化),而不是"嵌入完整字体"。中文字库这一个选项就能差出十几兆。

4. 网页端工具的两面性:省事和风险并存

网页端工具的最大优势是零安装、跨设备、临时借用别人电脑也能用。我出差的时候在酒店商务中心处理过急件,全靠这类工具。但它的代价也很明确:文件要离开你的机器。

4.1 上传即失控:哪些文件不该往网页端送

文件一旦上传,你对它的控制就结束了。哪怕服务方承诺"处理完自动删除",你也无法验证这句话。所以判断标准不该是"这个网站看起来挺正规",而是"这份文件如果被第三方看到,我会不会出问题"。

我自己的红线清单是这样的:

  • 含身份证号、银行账号、手机号等个人信息的名册、申请表、报销单。
  • 未公开的合同、协议、报价单、投标文件。
  • 含内部数据的经营报表、财务凭证、人员档案。
  • 产品设计图纸、专利交底书、未发布的技术文档。
  • 医疗记录、体检报告这类敏感材料。

这几类文件,宁可多花十分钟在本地处理,也别图省事往网页端送。反过来说,公开发布的说明书、已出版的书稿、自己做的演示材料、没有任何个人信息的样本文件,用网页端问题不大。

注意:有些网页端工具会默认把处理结果保存在"云端历史记录"里,需要手动清除。上传前先看清楚有没有这个选项,处理完立刻删掉,别留着。

4.2 网页端常见限制与绕过思路

网页端工具的限制比本地工具多得多,主要集中在四个方面:单文件大小上限、页数上限、每日处理次数、并发数量。常见的单文件上限从 5 MB 到 100 MB 不等,超过就直接拒绝。

遇到超限,有几个思路:

先本地做一次粗加工。用系统自带的"打印到 PDF"清掉历史冗余对象,经常能把文件从 80 MB 降到 40 MB,直接跨过门槛。这一步不需要任何专业工具。

拆分再合并。把文件按页码范围拆成几份,分别上传处理,下载后本地合并。拆分和合并都有免费工具,操作也就几分钟。拆分的时候注意按章节边界切,别切在跨页表格中间。

换用浏览器本地运行的工具。有一类工具是完全在浏览器里跑的,文件不上传服务器,靠浏览器内的脚本引擎处理。好处是隐私安全,坏处是受浏览器内存限制,超过一两百页的大文件容易崩。用这类工具时先把其他标签页关掉,给足内存。

注意输出格式陷阱。有些网页工具只提供"转成图片再打包"这种伪压缩,输出的是 JPG 序列或者图片型 PDF,文字层全没了。压完一定要验证文字还能不能选中,不能选中就说明它把你的文件降级了。

5. 手机端:扫描件压缩的主战场

手机端处理 PDF 的场景,九成以上是"拍了照、转成 PDF、要发出去"。这个链路里,体积膨胀的根源在拍摄环节,而不是压缩环节。搞错顺序,压多少遍都白搭。

5.1 手机拍文档为什么天生就大

主流手机的主摄在一千两百万到五千万像素之间。拍一张 A4 纸,如果按全分辨率存,单张 JPEG 就有三到八兆。二十页的文件,一百兆起步。

更麻烦的是拍摄质量带来的连带问题。光线不足时手机会自动拉高感光度,画面出现彩色噪点——这些噪点对压缩算法来说是"有效细节",会被忠实编码,体积下不来。手持拍摄的轻微抖动会造成运动模糊,模糊的边缘在 JPEG 压缩时会产生大量高频系数,同样撑大文件。

还有一个隐蔽因素:透视变形。手机不可能完全平行于纸面,拍出来的文件总是梯形。扫描类应用会做透视矫正,把梯形拉成矩形,这个重采样过程会损失锐度,同时可能放大部分区域,导致最终像素数比原始还多。

5.2 拍摄阶段就能省下一半体积的操作

与其事后压,不如拍的时候就把条件控制好。这几条是我反复验证有效的:

用扫描模式而不是普通拍照模式。扫描模式会自动做边缘检测、透视矫正、对比度增强,输出的是"文档图像"而不是"照片"。它通常还会限制输出分辨率,一张 A4 出来大概 1 到 2 MB,而不是 5 MB。

保证光线充足且均匀。白天靠窗的散射光最好,避免顶灯直射造成反光和阴影。光线足了,感光度自动降下来,噪点少,压缩后体积小、观感还干净。晚上拍摄的效果往往差一倍以上。

正对纸面、镜头与纸面平行。这一条能减少透视矫正的重采样量,保留更多原始锐度。省下来的锐度余量,后面压缩时就能用更低的参数。

锁定曝光和对焦。连续拍多页时,自动曝光会自动调整,导致每页亮度不一致,压缩后有的页发灰有的页发白。手动锁定一次,整批一致。

别用数码变焦。变焦本质是裁切放大,像素是插值出来的,压缩时全是无效的高频信息。

5.3 手机端处理的顺序:先裁切矫正,再压

顺序错了会返工,这个我在早期踩过好几次。正确的处理链路是这样:

  1. 裁切和透视矫正。把纸面以外的背景全部去掉,拉正梯形。这一步必须在压缩之前,因为背景桌面、手指、阴影都是无效数据,先切掉再压,压缩算法才不会被它们干扰。
  2. 色彩增强。提高对比度、把纸面偏色拉回白色。这步做完,后面的二值化或者低质量压缩才不会把纸面灰底也当成内容。
  3. 必要时做文字识别,生成可搜索的文字层。注意这一步要在压缩前做,因为压缩后的图像质量下降,识别准确率会受影响。
  4. 压缩。到这一步才是调分辨率、调质量参数。
  5. 合并成单个 PDF 并设置页面顺序。

手机端工具的选择上,我倾向用系统自带的文件管理或者扫描功能做基础处理,它们对输出质量的控制相对透明;第三方扫描应用则要看清楚导出选项里有没有"质量/分辨率"设置,很多应用默认导出最高质量,需要手动调。

有个细节容易漏:手机端导出 PDF 时,页面尺寸经常被设成"按图像原始比例",导致每页大小不一致。如果是多页文档,最好统一成 A4 或者 Letter,否则打印时会自动缩放,白白浪费分辨率余量。

6. 压完出问题时的排查链路

压缩出问题不可怕,可怕的是不知道从哪儿查。我把常见故障按现象分类,每条都给出排查顺序,你可以照着走一遍。

6.1 越压越大是怎么回事

这是最常见的困惑。原因通常有四种:

源文件已经高度优化。一份纯文字、已经子集化字体、对象无冗余的 PDF,你再用一个质量参数更高的重编码器压一遍,它会把你原本用低质量 JPEG 存的图重新以高质量编码,体积当然涨。

重编码的量化表比原图更细。JPEG 压缩时用的量化表决定了细节保留程度。有些工具默认用接近无损的参数,对已经是质量 60 的源图来说,等于"用更精细的方式重新描述一张已经模糊的图",纯属浪费。

工具加了额外内容。有些工具会在输出文件里塞缩略图、元数据、字体回退信息、甚至自己的水印标识。页数多的时候这些开销能占好几兆。

图像格式选择错误。把一张原本用 Flate 无损压缩的线条图(比如流程图、签名),转成 JPEG 重编码,体积会涨好几倍——因为无损压缩对纯色块和锐利边缘的效率远高于 JPEG。

排查方法很简单:先做一次只有无损优化的压缩,看体积变化;如果无损能降,说明源文件确实有冗余,就用无损方案;如果无损反而涨了,说明源文件已经很干净,别压了,去降分辨率或者转灰度。

6.2 字变糊、图发灰、颜色偏了的根因

文字发糊,八成是降采样把文字当图像处理了。100 DPI 以下,8 号字基本没法看。解决办法是给文字区域单独设更高的分辨率,或者干脆设一个"文字保护阈值"——很多工具支持"低于某字号的区域不降采样",但支持这个功能的工具不多,比较现实的做法是整体把 DPI 提到 200 以上,接受更大的体积。

整页发灰,多半是色彩空间转换丢掉了 ICC 配置文件。原始扫描件可能带一个描述纸面白点的色彩配置,压缩工具把它剥掉之后,阅读器按默认的 sRGB 解释,纸面就变成了浅灰。解决办法是压缩时保留 ICC 配置文件,或者压缩前先把白点校正到纯白。

颜色偏移,典型是 CMYK 转 RGB 造成的。CMYK 的色域和 RGB 不一样,某些鲜艳的青色、橙色转换后会明显变化。带印刷用途的文件,压缩时必须关掉色彩空间转换。判断方法:压完打开文件,看同样位置的色块,肉眼能看出差异就说明转过了。

大面积色块出现花斑,这是 JPEG 在低质量下的块效应。纯色背景、渐变色块、大面积留白,在质量参数低于 70 时会出现 8×8 像素的方块痕迹。这类文件应该用无损压缩或者更高质量参数。

6.3 书签、表单、链接、OCR 文字层丢失

这一组问题最气人,因为文件看起来好好的,用起来才发现功能没了。

书签丢失:压缩工具为了简化结构,把书签树砍了。带目录的手册、规范、年报必须保留书签。检查方法:打开阅读器的书签面板,看条目数量跟原文件是否一致。

表单域丢失:可填写的申请表、问卷、报账单,压完变成静态图片,用户没法填了。这是因为工具把表单"扁平化"了。检查方法:点一下表单区域,看能不能输入。

超链接失效:正文里的交叉引用、外部链接被清除。目录页的跳转链接尤其容易丢。

OCR 文字层丢失:扫描件上本来叠了一层看不见的文字,可以搜索、可以复制。有些工具在重采样图像时把这层也一起扔了。检查方法:用搜索功能找正文里一个肯定存在的词,搜不到就是丢了。

解决办法:换一个明确提供"保留结构"选项的工具,或者在批次处理时把这类文件单独挑出来,只用无损方案处理,牺牲体积换功能完整。

6.4 加密与权限受限文件的处理顺序

带打开密码的文件,任何压缩工具都处理不了,必须先解密。这个简单,输入密码另存一份就行。

麻烦的是那种"能打开但限制编辑和打印"的文件——它没有打开密码,但设置了权限标志位。这类文件能不能压,取决于工具是否遵守权限标志。有些工具会直接拒绝处理,有些会照压不误。

我的处理顺序是:先确认自己有没有处置这份文件的权限。有权限的(比如自己生成的文件、客户授权的文件),先去掉权限限制再压;没权限的,别动,老老实实按原样传。

还有一种情况是数字签名的文件。任何改动都会让签名失效,包括压缩。这类文件绝对不能压,压了就等于把签名作废。如果对方要求"压缩后仍然有效",唯一的办法是让签名方重新签一份压缩后的版本。

7. 验收:怎么确认压缩没把文件压坏

压完不验,等于没压。我给自己定的规矩是:任何要交付出去的文件,压完必须过一遍验收,哪怕只是快速扫一眼。

7.1 三个必须对比的维度

体积维度。看绝对值也看比例。压缩比在 10% 到 30% 之间,说明处理得当;压缩到 1% 以下,多半是压过头了,重点检查文字清晰度;压完反而变大,回去看第 6.1 节。

视觉维度。不要只看第一页。抽四类页面重点看:首页(通常有标题和Logo)、含小字的页面(表格、脚注、注释)、含图片的页面(照片、图表)、含细线的页面(表格框线、工程图纸)。放大到 200% 看文字边缘,看表格线有没有断,看图表的渐变色有没有出现色带。

结构维度。用阅读器检查这几项:页数是否一致、书签数量是否一致、表单是否还能填写、正文关键词能否搜索到、页面尺寸是否统一、页面方向是否正确(横版图纸别被转成竖版)。

我把这套验收整理成一个清单,每次交付前对一遍:

检查项通过标准常见失败表现
文件体积达到目标且未异常变小缩到原文件 1% 以下
页数与原文件一致少页、多出空白页
书签层级和数量一致书签面板为空
表单可正常点击输入点击无反应
搜索正文关键词可搜到搜不到任何结果
正文清晰度200% 下可读笔画粘连、边缘毛刺
细线完整性表格框线连续框线断裂、变虚
色彩准确性印章、色块无明显偏移红色变橙、蓝色变紫
页面尺寸全部一致且方向正确混入横版页、尺寸不一

7.2 建立自己的参数清单

验收做多了,你会发现不同用途的文件其实就那么几类,每类的参数组合是固定的。把这些组合记下来,以后就不用每次重新试。

我自己的清单大致是这样组织的:按"文件类型 × 用途"两个维度切分。文件类型分纯文字、彩色扫描、黑白扫描、图文混排、大幅面图纸五类;用途分屏幕阅读、邮件传输、打印签署、长期归档四类。二十个格子,实际常用的也就七八个。

比如"彩色扫描 × 邮件传输",参数就是 150 DPI、JPEG 80、保留彩色、保留书签、关闭色彩转换。"黑白扫描 × 长期归档",参数是 300 DPI、二值无损编码、不做色彩转换、保留全部结构。

这份清单的价值在于,它把每次决策的成本降到了零。下次遇到同类文件,直接套用,压完抽查两页就能交付。真正需要重新调参的,只有那些从来没遇到过的组合。

最后分享一个我用了很多年的小习惯:每份处理过的文件,在输出目录里留一个同名的.txt记录,写上用的参数、压缩前后的体积、处理日期。文件攒到几十份之后,这份记录就是最好的参数参考——比任何教程都贴合你自己的实际需求。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询