1.背景
本篇博客主要探讨在将Word文档导出为PDF文件时的一些问题和注意事项,主要是之前写毕业论文时候的一些经验,记录下来以备日后查阅。
在写论文等文档的时候可能你也遇到过这样的情况:精心设计画了一个很漂亮的图,插入Word以后,再导出为PDF,PDF文件中的图片画质显著下降,比较难看,如下图所示:
可以看到,洞穴内壁上的纹理在右边导出的PDF中已经模糊了。而且文字部分出现了压缩的马赛克,看起来十分难看。所以,如何尽可能保证输出PDF文档中图像的质量是至关重要的问题,也是本篇博客的关注点。本篇博客使用的软件如下:
- Microsoft Office LTSC 专业增强版 2024 Word
- Adobe Acrobat 2025
2.基础知识
在继续之前,先介绍一些Word插入图片的小技巧和基础知识。
2.1 Word插入图片后不压缩质量
一般情况下,当我们插入一张图片到Word后,为了控制文件大小,Word默认会对图片进行压缩(这个过程不可逆)。因此,为了获得尽可能高质量的图片,可以在Word设置中设置不压缩图片。点击Word菜单栏中的“文件”-“选项”-“高级”,找到“图像大小和质量”,如下。
可以看到,Word中默认的图片分辨率是220ppi。我们可以把“不压缩文件中的图像”选项勾选上,这样下次再向这个文件里插入图片就是原图了。当然,你也可以在上面的作用域里选择“所有新文档”,这样之后Word新建所有文档图片都不压缩。这里需要特别注意两点,第一是Word图片压缩过程是不可逆的,第二是这个选项只对修改设置后新插入的图片有效。换句话说,你之前文档里插入了100张图片,默认情况下已经被压缩了,即使你现在改了配置,之前插入的100张图片也不会再变成原图质量,只能重新插入才可以。所以这个选项如果要修改,一定要记得在一开始就做,不然很多图片还得重插。
2.2 Word插入和输出矢量图
在某些情况下,你可能用Visio画了一个论文的框架图,这个图本身是矢量的,如何把它插到Word里呢?主要有三种办法。
第一种是插入Visio对象。点击Word菜单栏中的“插入”,找到“对象”,然后选择“由文件创建”,选择画好的Visio文件即可,插入后如下图所示。
这种方式的优点是比较直观,而且可以通过双击插入的图片直接编辑Visio对象内容。它的缺点也比较明显。首先这种方式插入的图片并不能像普通图片一样,选中图片以后在Word中调起“图片格式”标签,从而进行旋转、长宽精确修改、裁剪等操作,无法方便快捷的和Word其它内容进行整体排版。而且通过个人测试发现,这种直接插入Visio对象的方法有一定概率在导出PDF时图片内部的文字出现丢失甚至乱码(尤其是图片内容本身比较复杂的时候)。因此正常情况下不推荐这种方法。
第二种是在Visio中将内容导出成JPG或PNG位图,然后插入Word文档中。在导出图片的时候,尽量设置高一些的分辨率,导出的图片放大后会更清晰一些(个人喜欢设为300x300像素/in),导出后的效果如下:
可以看到,总体而言,在相同PDF导出配置下,PNG图片比JPG图片质量更高。特别是在文字边缘等纹理复杂区域,JPG出现了明显的压缩马赛克。所以相比于JPG,推荐使用PNG格式导出。但这种方式依然有问题,PNG依旧是位图,图中的文字无法选择,只是分辨率高一些更细致一些。只要放大足够大,导出后的图像边缘依然可以看到像素,如下所示。
总体而言,这种方法的有点就是简单方便,导出的位图可以在Word中方便的编辑、排版。缺点则是本质仍是位图,放大后会有马赛克,同时图片中的文字无法选中。如果只是简单情况,可以使用这种方法,否则不推荐。
第三种是在Visio中导出成Word认可的矢量图文件,再插入Word。更具体来说,在Visio中将绘制内容导出为EMF文件。EMF文件全称Enhanced Metafile,中文叫增强型图元文件,由微软提出。感兴趣可以参考这个和这个网页。导出EMF文件后,就和PNG文件一样插入Word,并且支持“图片格式”工具,可以方便的裁剪、修改大小、排版等操作。导出成PDF后,图片内容依旧是矢量,文字可以选中,放大不会变成马赛克,如下:
总体而言,这种方法可以像普通位图一样快捷排版,又可以导出矢量图,放大不失真。几乎没有缺点,是最推荐的Word插入矢量图的方式。唯一可能的缺点是,如果绘制的矢量图相对复杂切包含一些位图内容的话,导出的EMF文件可能比较大。不过并不会直接影响最终导出PDF文件的大小。
3.Word文档导出PDF
为了说明和验证Word导出PDF各种方式的差异和优势,创建了一个包含文本、位图、矢量图的文档用于测试,截图如下:
之后会观察导出后各图片的质量。
3.1 导出PDF的可行方式
在Word中,有多种导出PDF的方式,主要包含如下几种:
- 另存为方法1:菜单栏点击“文件”-“另存为”,文件类型选择PDF
- 另存为方法2:菜单栏点击“文件”-“另存为Adobe PDF方法”
- 打印方法1:菜单栏点击“文件”-“打印”,打印机选择“Microsoft Print to PDF”
- 打印方法2:菜单栏点击“文件”-“打印”,打印机选择“Adobe PDF”
- Acrobat方法:菜单栏点击“Acrobat”,点击“创建PDF”
先简单介绍一下各方法。首先是打印类的方法,这种方法会把文档以打印的形式转换为PDF,输出的PDF文件是纯图片,文字无法选择。因此除非有特殊要求的场景,否则不推荐此类方法。另存为方法1是Word利用自带的PDF生成器进行输出,基本无法调整输出参数。输出质量总体还可以,适合于普通没有特殊需求的场景,更复杂场景不推荐。Acrobat方法则是基于安装的Acrobat进行生成,有很多参数和预置方案可供选择,可以生成满足不同需求的PDF文件。另存为方法2本质上是Acrobat方法的“快捷方式”,其会基于现有设定好的Acrobat输出方案进行PDF输出。
因此普通情况使用另存为方法1即可,对输出质量或大小有进一步要求则推荐使用Acrobat方法。而对Acrobat方法中的诸多参数和预置方案下面进行简单分析。
3.2 Acrobat导出方案分析
在Acrobat中,默认有Standard-Classic、标准、超大页面、高质量打印、印刷质量、最小文件大小等方案。
我们可以点击“高级设置”从而看到各预置模式的详细参数,如下:
下面简单对一些重要参数进行分析。
3.2.1 一般参数
如下图所示。
在一般参数中,比较核心的是兼容性、分辨率这两个。兼容性是指该PDF文件的版本,如果版本过高,可能在一些非常老的电脑上无法打开,一般用默认值即可。分辨率则是指整个文档的分辨率,单位是“点/英寸”。理论上分辨率越高文档内容越精细,但与之对应文档大小会越大。一般情况下默认的600是足够的。
3.2.2 图像参数
如下图所示。
图像参数在很大程度上决定了输出文件的大小以及输出图片的质量。在图像参数中进一步分为三类:彩色图像、灰度图像和单色图像,分别处理。“缩减像素采样”主要是指缩放图片的算法,一般情况下默认即可。而图像分辨率的阈值,一般默认450即可。图像压缩算法决定了图像细节的质量,可以自动或者选择不压缩。最后图像质量表示整体质量,从最低到最高。
3.2.3 字体参数
如下图所示。
字体参数主要是指是否把用到的字体嵌入到PDF文件中。一般情况下如果没用到什么特殊字体或者有特殊需求,默认配置即可。
3.2.4 颜色参数
如下图所示。
颜色参数主要是控制输出文档的色彩。主要是色彩管理方案。可以选择“保留颜色不变”、“转为CMYK”、
“转为sRGB”等设置。一般用于屏幕显示情况不变或者转为sRGB即可。即使对于需要打印的场景,也无需单独设置,除非有特殊要求必须是CMYK色彩空间。
3.2.5 高级参数
如下图所示。
这里面主要是一些PDF文件本身的相关设置,如果没有特殊需求默认即可。
3.2.6 标准参数
如下图所示。
这里主要是和PDF文件标准相关的设置,同样的,如果没有特殊需求,默认即可。
3.2.7 各预置方案参数对比
最后,我们也对Acrobat中预置的一些方案的关键参数进行了整理和对比,如下。
总体而言,从纸面参数来看,输出质量最好的是“高质量打印”方案。其整体文档分辨率以及各图像的分辨率均最高。相比于“印刷质量”方案,其差别在于颜色空间,“印刷质量”方案将颜色转换为CMYK了。因此,在不考虑其它因素,只考虑质量的情况下,高质量打印方案是最优选择。“标准”方案则是在保证质量的前提下,适当降低了文档分辨率和影像整体质量,适合于普通场景。而所谓的“超大页面”方案,并不是想当然理解的“生成质量很高,所以可以用于超大页面”,而恰恰相反。因为是超大页面,所以对一些细节的要求反而降低了,比如和“标准”方案相比,影像分辨率和质量均下降了。也可以理解,比如对于广告牌等超大页面,没人会贴着看细节,只是远远看到内容就可以了,对细节确实没必要有很高要求。最后,对于“最小文件大小”方案,可以看到,它主要是通过降低影像的分辨率来降低文件大小。
4.PDF文件质量控制
前面我们分析了各输出方案,这里进一步分析。如果不考虑其它因素,只考虑输出PDF文档的质量,显然“高质量打印”是最优的。但是在实际中发现,如果文档很大、很复杂(有很多位图和矢量图),例如毕业论文,转换时间会变得非常缓慢(几个小时起步)。但“标准”方案则快很多(两三分钟),分析参数可知,其关键原因就在于文档分辨率和图像质量这两个参数。特别是文档分辨率影响最大。事实上在实际使用中发现,其实文档分辨率并不需要2400,一般默认的600就已经很高了。但在生成速度上会快很多。同时,为了获得最好的影像质量,图像压缩甚至可以选择“不压缩”。因此,我们可以自定义两套输出方案,如下:
自定义高质量方案主要基于预置的“标准”方案,参考“高质量打印”方案,将图像质量设置为了最高,其余没有变化。自定义高质量不压缩方案,则是在自定义高质量方案基础上,进一步关闭了影像压缩,提升质量。
基于第三部分开头建立的Word文档,使用不同的PDF导出方式导出,并对结果进行比较。比较结果简单汇总如下表:
可以看到,总体而言,最小文件方案效果最差,出现了大量的马赛克。不仅如此,源文档中采用的特殊字体由于PDF中没有嵌入(根据3.2.7部分的对比表格可以看到),导致文字无法显示。所以正常情况下,不推荐最小文件方案。而Word另存为方法和Acrobat标准方案相比质量稍差,但也还能看。因此,如果电脑上没有安装Acrobat,一般情况下使用Word直出也可以。如果安装了Acrobat,那么还是建议使用Acrobat导出,即使是标准方案,也比Word直出质量稍高。最后,对于高质量打印方案和自定义的两套方案,总体而言,从视觉效果上都非常好,基本看不出差别。再结合文件大小等因素,综合推荐自定义的高质量方案,可以在保证高质量的前提下有较小的文件大小。比如在这里,Acrobat高质量是1.00MB、自定义高质量是0.99MB、自定义高质量未压缩是2.05MB。Acrobat之所以比自定义稍大,从配置参数就可以知道,是因为文档分辨率更高,为2400,而自定义的分辨率为600。
5.PDF文件大小控制
最后,简单谈谈对于PDF文件大小的控制。在日常生活中你也肯定遇到过这样的场景:需要交个PDF文件到某个系统,系统里要求文件大小要在3MB以下。这时,在不改变文档内容本身的情况下,可以考虑通过其它方式来减少文件大小。
首先需要明确的认知是,对于PDF文件大小,主要是由其包含的图片大小和数量决定的。文档中本身文字其实不会占很多空间。因此,优化PDF文件大小至少有以下几个方向可以尝试:
- 提前压缩图片,尽可能减少插入图片的大小。比如有一张3MB的JPG格式的照片,可以通过如Tinypng等网站压缩后,再插入Word文档。
- 灰度图转单通道图像。对于某些灰度图,它可能本身还是存了RGB三通道信息,这时可以考虑将图片转为单通道图像,再插入,也可以降低文件大小。
- 尽可能使用矢量图而非位图。对于自己绘制的图片等,尽可能按照2.2部分介绍的以矢量图形式插入,这样会显著降低文件大小,同时保证输出图片的高质量。
- 在不明显损失质量的情况下,降低图片分辨率。降低图片分辨率是减少大小的有效手段之一,不过要注意处理后的图片是否还能看清,特别是文字。
- 以文字代替位图。某些情况下可能是扫描的文字,这时可以用文字取代扫描的内容,也可以大幅减少大小(等于是用文字替换了位图)。
- 借助PDF24Tools等工具。借助压缩工具等也可以很方便的进行文件大小的压缩。
总之,控制PDF文件大小是个技术活,也需要在质量和大小之间找到平衡,尽可能在看不到的地方“偷工减料”。 最后,为了使用方便,也将本博客自定义的输出方案文件上传到了Github,点击查看。方案文件可以在导出PDF的时候直接加载使用。
6.参考资料
- [1] https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-emf/91c257d7-c39d-4a36-9b1f-63e3f73d30ca
- [2] https://docs.fileformat.com/zh/image/emf
- [3] https://blog.csdn.net/Jiajikang_jjk/article/details/80840067
- [4] https://tinify.com
- [5] https://tools.pdf24.org/zh
本文作者原创,未经许可不得转载,谢谢配合