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


70

我创建了一个简单的MS Word文档,其中仅包含以下语句:

这是一个小文件。

没有其他的。然后,我将该文档另存为DOCX和PDF。这是文件大小:

DOCX:12 kB
PDF:89 kB

从技术上讲,这种差异是巨大的,当大多数DOCX 中数十kB的文本文档开始生成数百kB的 PDF 时,这确实让我感到困扰。PDF格式的效率如何?还是只是Word使用某种可怕的输出算法?

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

PDF输出选项


28
我的猜测是PDF嵌入了字体,这对于真正便携的文档来说是必需的。
AFH 2015年

2
是的,字体子集已嵌入。可能就是这样。我试图将同一句话重复数百次,而PDF文件的大小仅增加了4 kB,这几乎是正确的。(DOCX停留在12kB上,这并不奇怪,因为它是压缩格式,重复的文本几乎不会占用任何新字节。)
Borek Bernard 2015年

1
@AFH不嵌入Arial。i.stack.imgur.com/aUZgt.png
MonkeyZeus

1
从Kolmogorov复杂性的角度考虑它,Microsoft Word比普通的PDF查看器大了几百kB。
hobbs 2015年

8
我认为真正的问题是,为什么您的文字处理格式比等效的LaTeX这么大... :-p
Toby Speight

Answers:


104

如果在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种标准字体之一(来源Wikipedia

  • Times New Roman> Times(v3)(常规,斜体,粗体和粗体斜体)
  • 快递>快递(常规,斜,粗体和粗体斜体)
  • Arial> Helvetica(v3)(常规,斜,粗体和粗体斜体)
  • 符号>符号
  • 机翼> Zapf丁巴特


2
旁注:链接的幻灯片(Powershell演示)值得一读。非常详细。不要错过他解释PDF结构的评论
nixda

3

在Microsoft Word中,尝试将简单的原稿导出为PDF时,这已经发生了很多次。一个5-8页的Word文档,大小约为50 KB,最终将成为10+ MB的PDF文件,该文件太大而无法合理地发送给他人。

Rene的答案是正确的-问题是字体已嵌入文档中-但是仅使用一种标准字体不一定能解决问题。

我所有的文档都在Times New Roman中使用,没有什么比黑体和斜体更漂亮。还是我想。事实证明,我在默认模板中启用了自动字距调整(出于明显的原因)。在导出为PDF时,Word实际上将每个连字作为一个单独的字体对象嵌入到文档中,从而使文档blo肿。

修复很简单,您只需要记住每次都要做:

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

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

将文档重新导出为PDF,并且大小不超过100 KB。不幸的是,字距调整是低于标准的,所以我不建议以这种方式打印,但是它可以通过电子邮件发送文档。


-3

要给出一个可能不太有用的技术答案,是PDF使用向量(即数学方程式)来描述您看到的所有内容。所有曲线和线都是由数学方程式定义的,因此必定会包含很多信息,特别是当文档中有图像时。

这样做的好处是,理论上您可以无限接近地缩放,而不会丢失任何分辨率或细节,因为直线和曲线没有宽度,因此它们可以随缩放比例缩放。

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


4
这种类比是行不通的。完全没有 Google的徽标更改不仅是字体,而且还从渐变更改为平面,从而使大小有所不同。此外,将文档导出到较大的位图将比字体+文本大得多。正如您误解的那样,数学方程只是整数坐标对,其中每个字形可能有几十个。而且由于它是一种字体,所以不需要每个字母都重复。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.