为什么 MS Word 生成的 PDF 这么大?

为什么 MS Word 生成的 PDF 这么大?

我创建了一个简单的 MS Word 文档,其中只包含这句话:

这是一份小文件。

没有别的了。然后我把这个文档保存为 DOCX 和 PDF。文件大小如下:

DOCX:12千字节
PDF:89 千字节

这种差异巨大的从技术上讲,当大部分文本文档都是数十 kB在 DOCX 中开始生成 PDF,数百 kB很大。PDF 格式为什么这么低效?还是 Word 使用了一些糟糕的输出算法?

顺便说一下,PDF 输出设置被设置为创建尽可能最小的文件:

PDF 输出选项

答案1

如果你在 notepad++ 中打开 PDF,你会发现:

9 0 obj
<</Filter/FlateDecode/Length 79100/Length1 171804>>
stream
xœì}    XTGºvÕ9½/t7Ðl
..... many more bytes  ...   ëH|  
endstream
endobj
10 0 obj

并且该对象在 /FontFile2 指令的末尾被引用:

6 0 obj
<</Type/FontDescriptor/FontName/ABCDEE+Calibri/Flags 32/ItalicAngle 0/Ascent 750/Descent -250/CapHeight 750/AvgWidth 521/MaxWidth 1743/FontWeight 400/XHeight 250/StemV 52/FontBBox[ -503 -250 1240 750] /FontFile2 9 0 R>>
endobj

Word 文档使用的字体嵌入到 PDF 中,因此 pdf 是自包含的。

我用了这张幻灯片解密 PDF 说明。

如果要防止字体嵌入 PDF 文件中,请确保 Word 文档使用 PDF 查看器中提供的 14 种标准字体之一(来源维基百科

  • Times New Roman > Times (v3)(常规、斜体、粗体和粗斜体)
  • Courier New > Courier (常规、斜体、粗体和粗斜体)
  • Arial > Helvetica (v3)(常规、倾斜、粗体和粗倾斜)
  • 符号 > 符号
  • Wingdings > Zapf 标志

答案2

当我尝试将 Microsoft Word 中的简单手稿导出为 PDF 时,这种情况发生过很多次。一个 5-8 页的 Word 文档,大小约为 50 KB,最终会变成 10+ MB 的 PDF 文件,这个文件太大了,无法通过电子邮件发送给某人。

Rene 的回答是正确的——问题在于字体嵌入到文档中——但仅仅使用一种标准字体并不一定能解决问题。

我的所有文档都是 Times New Roman 字体,只使用粗体和斜体。至少我是这么认为的。结果我发现我自动字距调整在我的默认模板中启用(对于显而易见的原因)。在导出为 PDF 时,Word 实际上将每个连字符作为单独的字体对象嵌入到文档中,这使其变得难以置信地臃肿。

解决方法很简单,你只需要记住每次都这样做:

  1. 选择文档中的所有文本。
  2. 格式 → 字体 → 高级
  3. 取消选中“字体字距调整”

有趣的是,您可以保持连字、上下文替代和其他高级排版功能处于启用状态;它们对生成的 PDF 的大小没有明显的影响。

将文档重新导出为 PDF,大小减少到 100 KB 左右。遗憾的是,字距调整效果不佳,因此我不建议以这种方式打印,但它非常适合通过电子邮件发送文档。

答案3

给出一个不太技术性的答案可能会有所帮助:PDF 使用矢量(即数学方程式)来描述您看到的一切。所有曲线和直线都由数学方程式定义,因此必然会有很多信息需要保存,尤其是当您的文档中有图像时。

这样做的好处是,理论上你可以无限放大而不会丢失任何分辨率或细节,因为线条和曲线没有宽度,所以它们可以随着你的缩放而缩放。

就像谷歌最近的字体更改将徽标的大小从约 14 KB 减小到约 300B 一样,更简单的字体可能会有助于减小文件大小。

相关内容