0%

同样的文件体积如何换来更清晰的 Word 和 PDF 截图

同样的文件体积如何换来更清晰的 Word 和 PDF 截图

一、结论

先给结论,后文是依据。

  1. 只截需要的那一块。 按图片在纸上的目标宽度反推该截多少像素,不要截整屏。
  2. 源像素不够时,先放大再截。提高浏览器页面缩放或应用字号,让待截区域占据更多源像素。
  3. 界面截图存 PNG。文字和线条用 PNG 编码通常比 JPEG 体积更小,而且无损。
  4. 关闭 Word 图片压缩。文件→选项→高级→图像大小和质量→勾选”不压缩文件中的图像”。这是文档级设置,换个文档要重设一次。
  5. 导出 PDF 避开”最小文件大小”。该档会把图片降到 96 ppi,打印不可用;清晰度优先与体积优先分别该走哪条导出路径,见第七节的对照表和第八节的本机实测。

关闭压缩只能防止已有像素被降采样和有损重编码,它既不改变像素数,也不改变图片在版面上的物理尺寸;同时作用于这两者的只有截取范围。

二、有效 PPI的定义与换算

DPI 是 dots per inch 的缩写,原本是输出设备的指标,指打印机在一英寸长度上能打出多少个墨点。对应到数字图像,准确的术语是 PPI(pixels per inch)。两者严格说不是一回事,但 Word 和 Photoshop 的界面上写的都是 DPI,表达的却是 PPI的含义。本文按习惯统称 DPI,在讨论版面结果时用 ppi。

真正需要理解的是:它是一个比值,不是图片自带的属性。

一张图片身上有三个量互相牵制:

  • 像素尺寸,比如 2480×3508,这是文件里实实在在存着的数据,也是三者中唯一固定不变的
  • 物理尺寸,比如打印出来占 210 毫米宽,这取决于你打算把它输出多大
  • DPI,就是前两者相除的结果

三个量知道任意两个就能算出第三个。

  1. 同一张 2480 像素宽的图,铺满 A4 纸(210 毫米宽)时是 300 ppi;
  2. 只印成半页宽(105 毫米)时像素一个没少,PPI却变成 600;
  3. 拉大到一米宽的海报,PPI掉到 63,满是马赛克。

说下计算公式,后续不再赘述

210 mm ÷ 25.4 = 8.2677 英寸

2480 像素 ÷ 8.2677 英寸 ≈ 299.96 PPI

图片本身从头到尾没变过,变的只是你打算把它摊开多大。

由此得出一个常被忽略的结论:单独说一张图是 300 DPI,其实什么也没说清,必须补上物理尺寸这个前提。”A4 满幅 300 DPI”才是有确切含义的说法,才能反推出它是 2480×3508 像素。别人给你一张图说是 300 DPI,下一句要问的是按多大尺寸输出。

对文档场景,把这个比值写成可以直接套用的形式:

1
2
有效 PPI= 图片像素宽 ÷ 版面显示宽度(英寸)
所需像素宽 = 目标 PPI× 版面显示宽度(英寸)

公文页面设置下 A4 版心宽 156 毫米,即 6.14 英寸。

按照现行《党政机关公文格式》GB/T 9704—2012,A4 公文用纸尺寸为 210 mm × 297 mm,版心尺寸为 156 mm × 225 mm;水平方向通常对应左白边 28 mm、右白边 26 mm

210−28−26=156 mm

156÷25.4≈6.1417 英寸

常用档位对照表如下:

目标 ppi 满幅 A4 所需像素 156 毫米版心所需像素宽 典型场景
72 595 × 842 442 PostScript/PDF 点单位,早期 Mac 屏幕
96 794 × 1123 590 Windows 传统屏幕基准,PDF”最小文件大小”
150 1240 × 1754 921 屏幕阅读版 PDF,传真级扫描
200 1654 × 2339 1228 普通文档扫描
220 1819 × 2572 1351 Word 默认图片压缩档
300 2480 × 3508 1843 印刷标准
330 2728 × 3859 2027 Word 图片压缩的次高档
600 4961 × 7016 3685 高精度扫描、线稿印刷

这张表右侧那一列是后续所有步骤的输入值。 图片准备占满版心、按 Word 默认 220 PPI档输出,截图宽度控制在 1351 像素左右即可,超出的部分最终都会被丢掉,只贡献体积不贡献清晰度;若图片只占半个版心宽,把数字对半砍。

小结:像素尺寸是事实,物理尺寸是意图,PPI是两者相除的结果。判断一张图清不清晰,要看它在最终输出尺寸下的有效 ppi,而不是看文件属性里写着多少。

三、图片文件里的 DPI 标签

上一节说 PPI是算出来的,但图片文件里确实存着一个 DPI 数值。这两件事需要区分清楚。

先看截图是怎么产生的。 按下截图键的瞬间,系统把桌面合成后的画面数据原样复制一份存成文件。截图工具看到多少个像素,文件里就有多少个像素,一一对应。

在 DPI 感知正常的工具上,3840×2160 的屏幕截出来就是 3840×2160 个像素,例如用 PixPin工具做的全屏截图如下图所示。

整个过程没有任何一个环节涉及”英寸”这个物理单位,没有量过尺子,纯粹是数据搬家。

扫描仪的情形正好相反。扫一张 A4 纸时,扫描头沿着真实纸面物理移动,设置 300 DPI 意味着每走过一英寸就采样 300 次。这个 300 是从真实世界量出来的,改不得,改了就是撒谎。

截图里的内容压根不存在于物理世界,谈不上”每英寸采样多少次”。

所以截图文件里的 DPI 数值是写上去的,不是量出来的。它是截图软件保存文件时顺手记下的一句话:建议按每英寸 144 个像素的密度呈现。它不描述图片本身的任何特征,只表达一个渲染建议。

这也意味着可以放心修改它,把 144 改成 220 或 96,像素数据一个字节都不会变,变的只是这张图被插入排版软件时的默认尺寸。

但它不是一段废数据,有两层实际价值。

一是记录了信息,144 这个值来自 96 × 1.5,在工具做过 DPI 感知适配的前提下,它反映了截图时 Windows 显示缩放是 150%。

二是决定下游行为,Word 和 PDF 排版工具都会读取这个标签,用它算出图片的默认插入尺寸:标签写 144,3840 像素的图就按 677 毫米宽插入;标签改成 600,同一张图按 163 毫米宽插入,接近版心宽度。

像素完全相同,落到版面上的效果天差地别。

小结:截图的 DPI 不是测量结果,而是软件写入的一句渲染建议,图片内容本身没有物理尺寸。但这句建议会被排版软件当真执行,直接决定图片在文档里被摆多大。既不必当成画质指标来紧张,也不能当成无关数据随手忽略。

四、显示缩放:DPI 标签取值的来源与超采样

DPI 标签写进去的具体数值来自系统当时的显示缩放设置。这条链路理顺之后,还能反过来利用它解决一个实际问题:源像素不够时怎么办。

基准数是 96。Windows 从早期版本起就假设屏幕上每英寸大约排 96 个像素,这是系统的逻辑 DPI 基准,对应显示缩放 100%,所有界面元素的默认尺寸都按它算出来。

4K 屏分辨率 3840×2160,做成 27 到 32 英寸时实际像素密度在 138 到 163 PPI之间,远高于 96。若按 100% 显示,系统仍以为每英寸只有 96 个像素,界面就会被画得又细又小。

系统的解决办法是把所有界面元素等比放大,4K 屏接上后 Windows 默认推荐 150% 缩放。两者相乘就是当前的系统 DPI:

显示缩放 系统 DPI
100% 96
125% 120
150% 144
175% 168
200% 192

截图工具保存文件时,把它当前感知到的系统 DPI 写进图片元数据。所以这个过程可以反过来读,但读的时候要把几种情形分开:

  • 标签是 144、120、168、192 这类非 96 的值,可推出截图时的缩放比例,即标签值除以 96
  • 标签是 96,存在三种可能:截图时缩放确为 100%;截图工具没做 DPI 感知适配(术语叫 DPI unaware),系统对它隐瞒了真实缩放;图片被某些编辑工具重新保存过,元数据被重写为默认值
  • 标签缺失,排版软件会按各自的默认值处理,Word 通常按 96 计算

DPI unaware 的情形还有一个更要紧的后果:这类工具看到的整个桌面也是虚拟化后的低分辨率画面,150% 缩放下 4K 屏在它们眼里只有 2560×1440,横向像素少了三分之一,按面积算总像素数只剩约 44%。

注意:同一台机器上不同工具截出来的图,DPI 标签和像素数都可能不一致。

由此引出一个正面技巧:主动提高缩放来获取像素。

上一节的对照表给出了”该截多少像素”,但如果待截的界面区域本身就没那么多像素怎么办。比如一个对话框在 100% 缩放下只有 600 像素宽,而版心需要 1351 像素,此时无论怎么截都不够,插入后放大只会变糊。

解决办法是在截图前先把内容放大,让同一个界面元素占据更多源像素:

  • 浏览器页面:Ctrl+= 放大到 200%,或用开发者工具的整页截图(Ctrl+Shift+P 输入 capture full size screenshot),后者还能突破可视区域限制
  • 终端、编辑器、IDE:直接调大字号,比改系统缩放省事,且不影响其他窗口
  • Windows 系统缩放:显示设置里调到 200%,部分应用需要重启才生效
  • 无法缩放的应用:考虑用虚拟机或远程桌面设置更高的分辨率与缩放组合

本质上这是超采样:用更多的源像素承载同样的信息量,缩到同样的版面宽度时,笔画边缘的过渡更平滑,字更清晰。代价是单屏能容纳的内容变少,可能需要分几次截图。

小结:144 = 96 × 1.5,前者是 Windows 的逻辑 DPI 基准,后者是 4K 屏默认的 150% 显示缩放。从图片属性里的 DPI 值可以反推截图时的系统缩放,但标签为 96 时需要排除工具不感知 DPI 和元数据被重写两种情形。反过来,主动提高缩放比例是获取足够源像素的正面手段。

五、Word 与 PDF 链路上的三次变换

一张截图从文件到 PDF,要经过三次独立的变换。这里只讨论文档内部的处理,不含最终打印或屏幕显示环节,那属于输出设备的能力范围。把三次变换拆开看,才能判断清晰度损失究竟发生在哪一步。

第一次:按 DPI 标签确定插入尺寸。 Word 用”像素数 ÷ DPI 标签”算出图片该占多宽。3840 像素宽、标签 144,算出 26.67 英寸约 677 毫米,而版心只有 156 毫米,图片是版心宽度的四倍多,Word 自动把它缩小到刚好放得下。

缩小之后发生了什么:整块 4K 屏幕的内容被塞进 156 毫米宽度里,屏幕上的 1 个像素落到纸面上只剩 0.041 毫米。150% 缩放下界面正文的字号约 18 像素(em 高度),到了纸上只有 0.73 毫米,相当于 2.1 磅的字,已经小到无法辨认。

这一步和压缩毫无关系。哪怕把 Word 的压缩功能全部关掉、PDF 也按最高质量导出,那行字仍然是 0.73 毫米高,仍然看不清。这就像把整面墙的公告缩印到一张明信片上,印刷精度再高也读不出来。

第二次:重采样到设定档位。 Word 在保存文档时,会把有效 PPI高于设定档位的图片重新采样到该档位。这里要区分”默认分辨率”下拉框里的五个并列选项:高保真、330 ppi、220 ppi、150 ppi、96 ppi。

高保真的含义是保留原始分辨率、不做降采样,它和 330 PPI是两个不同的档,不要混为一谈。

默认档位是 220 ppi。此外还有一个独立的复选框”不压缩文件中的图像”,勾上之后整个压缩流程都会跳过。

对于通过”插入图片”加入 DOCX 的常规位图,在启用”不压缩文件中的图像”、且没有做过裁剪和艺术效果等会触发图像转换的操作时,Word 可以把源图片按原始字节直接保存到 word/media 中。比对源文件与包内图片的 SHA-256,一致即可证明该图片没有经过重新采样、重新编码或元数据修改。相比之下,”高保真”只是尽量减少压缩和分辨率损失,并不提供字节级原样保存的同等保证。

注意:重采样只做降采样,图片有效 PPI已低于档位时不会被拉高,重采样本身也会引入模糊。

第三次:重新编码。 开启图片压缩后,Word 可能会对图片重新编码。普通位图常被转为 JPEG,含透明通道的图片通常仍保留为 PNG。JPEG 适合照片,但不适合由文字和线条构成的截图:高反差边缘经过 DCT 量化后容易产生振铃和灰色毛刺,小字号文字尤其明显。部分 Office 版本还会采用 4:2:0 色度抽样,使红字、蓝底等高色度对比内容进一步模糊。

清晰度损失主要来自这三次变换,影响依次递减:

  1. 缩小插入尺寸:决定内容在纸面上的物理大小,影响最大。本例中文字被压缩到约 2.1 磅,单凭这一点就可能无法辨认。
  2. 降低图片分辨率:决定在既定尺寸下还有多少像素承载内容。本例按面积计算仅保留约 12% 的像素。
  3. 重新编码压缩:不改变像素数量,只在现有像素上叠加 JPEG、色度抽样等损失。

尺寸决定字有多大,像素决定细节够不够,压缩只是在最后进一步损伤画质。 关闭压缩只能避免第三项,补救不了前两项;真正决定截图清晰度的,是插入后的物理尺寸以及与之匹配的原始像素数。

六、体积与清晰度的分配

现在回到最初的问题:文件体积有限时,字节该花在哪里?

图片文件的体积可以粗略写成:

1
字节数 ≈ 像素数 × 每像素平均编码开销(bpp)

两个乘数各自对应一个可调项。像素数由截取范围和源缩放决定,前面两节已经讲清楚。这一节讲第二个乘数:编码格式。

PNG 走无损路线。 它先对每一行像素做预测滤波(None、Sub、Up、Average、Paeth 五种预测器逐行择优),把相邻像素的差值压成大量的零,再交给 DEFLATE 做熵编码。这套机制对大面积同色区域和硬边界效率很高,而界面截图恰好就是纯色背景加清晰笔画。UI 截图在 PNG 下的开销经验值大致在每像素 0.8 到 1.5 比特之间,随纯色区域占比、是否含渐变与阴影、抗锯齿强度浮动,界面越接近纯色平铺越靠近下限;且完全无损,放大多少倍都不会出现毛刺。

JPEG 走有损路线。 它先把 RGB 转成 YCbCr,按设定对色度通道做下采样(4:2:0 时两个色度通道在水平和垂直方向各减半,4:4:4 时不减),再切成 8×8 的块做离散余弦变换,量化掉高频分量,最后做熵编码。这套机制假设图像是连续变化的自然场景,对照片效果极好,但截图里的笔画边缘正是高频分量最集中的地方,量化损失全落在了最需要保留的位置上。

界面截图因此适合用 PNG:同等观感下体积通常更小,而且无损,避免了 JPEG 在笔画边缘产生振铃和色度渗色的问题。很多人把”JPEG 体积小”当成常识,那是针对照片而言的,用在截图上恰好反了。

格式决策表:

内容类型 推荐格式 说明
界面截图、代码、表格、示意图、线稿 PNG 硬边高效,无损,体积通常小于同观感 JPEG
照片、实景图、含大面积连续渐变 JPEG,质量 85 到 90 连续色调下 PNG 体积会远大于 JPEG
截图中嵌有小幅照片 PNG 以主体为准,混合内容仍以硬边为主
需要透明通道 PNG JPEG 不支持透明
矢量来源(draw.io、Visio、PPT 图形) 保留为 SVG 或 EMF 等矢量格式 与分辨率无关,缩放不损失

表中未列 BMP、TIFF、WebP:BMP 通常不压缩,体积没有竞争力;TIFF 虽支持无损压缩,但在 Word 中相对 PNG 没有体积或质量优势;WebP 的插入支持随 Office 版本变化,兼容性有风险。正式文档场景不建议使用这三类。

最后一行值得单独强调:架构图、流程图这类本来就是矢量的内容,不该走截图这条路。

从 draw.io 导出 SVG,或以增强型图元文件(EMF)粘进 Word,图形以路径而非像素存储,无论放大到多少倍都是清晰的,体积也远小于位图。

这样可以避开第五节讨论的插入尺寸、重采样、有损重编码三类问题。

把两个乘数合起来看,就得到了开篇那个结论:

全屏截图走默认压缩,字节先花在 3840 像素上,重采样到 220 PPI档意味着按面积算只保留了约 12%,其余全部丢弃,剩下的还要挨一次有损编码。局部截图关闭压缩,字节全部花在会被保留的 1351 个像素上,且无损。同样的可读性目标,后者需要的字节估计少一个数量级:仅像素数之比就有 (3840÷1351)² ≈ 8 倍,再计入被丢弃像素白白占用的编码开销,实际差距还要更大,具体倍数随界面内容浮动。

小结:体积不是靠压缩选项省出来的,是靠不生产多余像素省出来的。压缩选项只决定已有像素被损耗到什么程度。

七、完整参数规程

把前面各节的结论合成一套可以照着执行的流程。

第一步,确定目标版面宽度。 图片在文档里准备占多宽,单位毫米。占满版心即 156,半栏即 78。

第二步,反推所需源像素宽。

1
所需像素宽 = 目标 PPI× 目标版面宽度(mm) ÷ 25.4

目标 PPI按用途取值:仅供屏幕阅读取 150,常规打印取 220,需要放大审读或高质量印刷取 300。占满版心的常用结果分别是 921、1351、1843 像素。

第三步,获取足够的源像素。 若待截区域的原始像素宽已达标,直接截取;不足则先提高浏览器或应用缩放再截。截取范围严格限定在需要展示的内容,不带无关的窗口边框和空白。

第四步,存为 PNG,并把 DPI 标签改写为第二步选定的目标 ppi。 这样插入 Word 时默认尺寸恰好正确,不需要手工拖拽。多数截图工具不提供该设置,可用命令行改写,像素数据不受影响:

1
magick shot.png -units PixelsPerInch -density 220 shot_220.png

Python 侧用 Pillow 一行即可:Image.open("shot.png").save("shot_220.png", dpi=(220, 220))

第五步,Word 设置。 文件→选项→高级→图像大小和质量,勾选”不压缩文件中的图像”。插入图片后保持 100% 原始尺寸,不要在 Word 里拖拽缩放。

第六步,选择 PDF 导出路径。 常见组合在机制上的差别如下表。具体表现随 Office 版本和打印驱动变化,以第八节的本机实测为准。

Word 图片压缩设置 PDF 导出路径 像素是否被降采样 是否有损重编码 适用场景
勾选”不压缩文件中的图像” 另存为 PDF,标准 通常不再降采样 视源格式与导出实现而定 体积与清晰度折中
勾选”不压缩文件中的图像” 另存为 PDF,最小文件大小 是,降到 96 PPI一档 仅供屏幕速览,不可打印
勾选”不压缩文件中的图像” 打印到 PDF(虚拟打印机) 由打印驱动的输出分辨率决定 由驱动实现决定 清晰度优先,体积明显偏大
默认 220 PPI档 另存为 PDF,标准 是,Word 侧已先降一次 是,Word 侧可能已转 JPEG 体积优先
默认 220 PPI档 另存为 PDF,最小文件大小 两次降采样叠加 两次有损编码叠加 不建议

注意:前面提及过,勾选”不压缩文件中的图像”后,图片以原始文件形式保留在 docx 内部的 word/media 目录里,文档体积约等于所有图片体积之和。docx 是 zip 包,PNG 已经压缩过,打包时几乎不会再缩小;正文、样式等其余部件通常只占几十 KB。这正是第一步必须控制像素数的原因,两个动作是配套的,只关压缩不控像素会让文档迅速膨胀。

八、实战验证

以上都是原理推导,而每台机器的 Word 版本、打印驱动、PDF 导出实现都有差异,实际行为需要在本机实测比对。为此程序化生成了一张与 156 毫米版心严格对齐的基准图:按版心尺寸 156 × 225 毫米、300 PPI生成,即 1843 × 2657 像素的无损 PNG,DPI 标签写 300。

这样插入 Word 后按 100% 尺寸正好占满版心,图上标注的字号就是纸面上的实际字号,观察结果可以直接引用,不需要再做换算。

各区域针对上面讲到的每一种损失分别设计:

① 文字清晰度区:4 磅到 12 磅的宋体和黑体,含”永””龘”等笔画密集字与 0O、1lI 等易混字符。其中红字蓝底一栏专门针对 4:2:0 色度抽样。

② 线对分辨率区:1/2/3/4 像素线宽的黑白线组,在 300 PPI基准下分别对应 300/150/100/75 PPI的等效分辨率极限。

③ 西门子星、波带片、斜线扇形:分别检测径向分辨率衰减、重采样摩尔纹、边缘锯齿与振铃。

④ 灰阶与彩色渐变:32 级灰阶阶梯用于对照,同区内另设连续渐变条,观察色带(banding)与灰阶断层;RGB 三通道渐变检查彩色断层与色偏。观察时只看连续渐变部分,阶梯本身的台阶是设计出来的,不是损失。

⑤ 棋盘格、记忆色、噪声:1 像素棋盘格是 DCT 块效应的极端测试;肤色、天空蓝等记忆色块判断色偏是否肉眼可察;随机噪声块(固定种子 42,可复现)用于对比细节被抹平的程度。

⑥ 1 像素网格与定位十字:检查几何完整性与红色细线的边缘渗色。

测试条件与分组

Word 侧六组共用同一份 docx,设置统一:插入后保持 100% 原始尺寸,勾选”不压缩文件中的图像”,只改变导出路径这一个变量。

组别 导出路径
第一组 另存为 PDF,优化选项选”标准(联机发布和打印)”
第二组 另存为 PDF,优化选项选”最小文件大小”
第三组 打印,虚拟打印机选 Microsoft Print to PDF
第四组 打印,虚拟打印机选”导出 WPS PDF”
第五组 用 WPS 打开第四组生成的 PDF,再次压缩,品质选”高品质”
第六组 用 WPS 打开第四组生成的 PDF,再次压缩,品质选”标准品质”

第一组的优化选项:

第二组的优化选项:

第四组的虚拟打印机选择:

第五组的压缩品质选择:

第六组的压缩品质选择:

观察方法:在同一台机器、同一个阅读器里打开六组 PDF,放大到 400%,逐组目视比对基准图的各个测试区。这是定性观察,下面的名次是主观排序,不是可复算的测量值。

观察结果

按目视清晰度从高到低排序,排序依据是PDF浏览器放大到 400% 下各测试区最先出现可辨损伤的档位:

名次 组别 体积(KB) 导出路径
1 第四组 1132 打印,导出 WPS PDF
2 第三组 1303 打印,Microsoft Print to PDF
3 第五组 429 第四组结果经 WPS 高品质二次压缩
4 第一组 315 另存为 PDF,标准
5 第六组 167 第四组结果经 WPS 标准品质二次压缩
6 第二组 89 另存为 PDF,最小文件大小

体积与清晰度并不同向变化。两条打印路径观感最好,但体积是另存为标准档的三到四倍(1132KB 和 1303KB 对 315KB)。若以”清晰度可接受前提下体积最小”为取舍标准,第五组和第一组处在拐点附近;第二组体积最小,代价是把 300 PPI的原图降到 96 PPI一档,只能用于屏幕速览。

九、全文小结

清晰度问题在截图那一刻就已经决定了大半,后面的压缩选项只是在既有像素上做加减。

四件事按影响从大到小排列,排序依据是各自能改变的量:

  1. 控制截取范围,让像素数与版面需求匹配。它同时决定像素总数和单个界面元素在纸面上的物理尺寸,是四者中唯一作用于物理尺寸的。
  2. 矢量内容不要截图。架构图、流程图这类内容保留为 SVG、EMF 等矢量格式,分辨率这个维度直接不成立,是四者中唯一能让问题消失的。
  3. 选对编码格式,界面截图用 PNG。它决定每像素的字节开销,以及是否引入编码损失。
  4. 关闭 Word 压缩,并按第七节的对照表选择 PDF 导出路径。它不改变像素数,只防止已有像素被降采样和有损重编码。