某些应用场景会对 Word 文件的体积有限制,以下是一些优化 Word 文件体积的建议参考。
编写时的建议
在前期编写 Word 文档时,如可以注意一些操作,可以有效减少图片尺寸:
- 用于在计算机上浏览使用的 Word 文件,通常不需要较高的图片分辨率,所以在初期插入图片时,尽量避免将过大的图片直接插入。
- 最好在外部将图片处理好后再插入 word。比如拼图之类,尽量不要从 PowerPoint 中直接复制过来,因为这可能会让 Word 为了保持某些可有可无的通道信息而产生巨大的 png 资源。
- 动画 gif 体积通常很大,如无动画需求,应先转换为单帧图片再插入。
- 某些工程软件的工程图,如以矢量格式文档导入,也会大幅减少文件体积。Office 2016 已支持 svg 格式的矢量文件。旧版本 Word 对矢量图的格式支持不同,可尝试 emf/wmf 等格式。
对已有文档的优化
如果是已经做好的文档需要压缩尺寸,那么除重新插入较小图片的方法之外,Word 自身也提供了压缩图片功能。
- Word 自身提供的“压缩图片”功能是最简单有效的方法,对于嵌入文档中的大尺寸图片有较好的优化效果。如果要压缩单张图片,可选择要压缩的图片,然后点击“格式”标签页中的“压缩图片”按钮,并选择一个较小的分辨率。可多次撤销并重试,以在质量可接受的范围内找到最小的分辨率。
- 如果要压缩所有图片,可在上述对话框中取消勾选“仅应用于此图片”,则所选内容会应用于所有图片。此外,在另存为对话框中,点击“压缩图片”亦有类似对话框,这也是一种压缩所有图片的方式。具体可参考微软官方帮助文档:减小文件大小的 Microsoft Office 中的图片
手动方式压缩
如经过以上操作,文件体积仍不合需求,或图片质量仍不可接受,则可考虑手动压缩。这是因为 Word 的图片压缩算法不佳(?),很多图片虽然已经压缩到画质很差了,但体积仍然很大。
新版本的 Office 文档,如 docx、pptx、xlsx 等以 x 结尾的格式,实际上都是 zip 压缩格式的文档。文档中用到的的图片等媒体资源,都是以独立文件形式压缩在包内。所以可采用将相关文件解压出来,优化体积之后再压回文档中的方式手动处理。
以 docx 文档为例:
- 备份原始文档;
- 将 .docx 文档重命名为 .zip 后缀
- 解压出对应尺寸较大的图片文件(位于
word/media
目录中); - 用外部工具将这些图片优化;
- 将优化后的图片压回 zip 并覆盖对应的原文件;
- 将 .zip 文件再改回 .docx;
- 打开 .docx 确保没有异常
图片优化可使用 imagemin 或 tinypng。tinypng 的压缩效果更好但免费版的 API 有每个月 500 次的限制,使用前需要先注册账号获取 APIKEY。
部分命令参考
# 使用的都是 nodejs 工具 # 假设已将包含所有资源的 media 目录解压了出来,然后在此目录中操作。 cd media imagemin *.{jpg,jpeg} --plugin=jpeg-recompress --out-dir=../build imagemin *.png --plugin=pngquant --out-dir=../build # 如果不满意可再用 tinypng 压一次 tinypng -n -r ../build/*.{jpg,jpeg,png}
其中 imagemin 使用的是 imagemin-cli,用到的 jpeg-recompress 和 pngquant 插件需要单独安装,这两个插件都比 imagemin 的默认插件压缩比要高一些。tinypng 使用的是 tinypng-tool,-n
表示不限 png 类型,-r
表示覆盖原文件。