将 Word 2003 文档保存为 XML,然后再返回会导致文件大小减小,而且可能还有更多我不知道的内容。新文档与旧文档的 WordML 差异仅显示修订保存 ID 的差异。那么,往返中丢失了什么?
如果实际上什么都没有丢失,那么如何解释文件大小的几千字节呢?
据我所知,除了 DOC 文件中的文本和格式之外,Word 还会存储一些信息,例如用户信息、文档历史记录中的一些内容等。这些信息在使用“文件 > 保存”时会累积。我想保存为 XML 并重新保存为 DOC 会删除该信息。
如果我没记错的话,因为简单的“另存为”已经减小了文件大小,而且我认为曾经有一些菜单项允许您保存一个比“文件>保存”版本小得多的 DOC 文件版本.
如果您在十六进制编辑器中查看 word 文档 (.doc),您会看到有很多很多的冗余零块。很好的格式,博士!
无论如何,保存到 XML 然后返回到 doc 可能会摆脱那些数千个零字节中的一些。
如果您真的很好奇,只需在十六进制编辑器中打开这两个文件并运行不同的算法,您可以尝试 Hex Workshop 和 Hex Editor Neo。
我对一些大型 Word 2003 文档的实验表明,将其保存为 XML,然后将其另存为 .doc,确实会导致文件稍微变小,但并不显着。正如您所指出的,rsidR 属性是不同的,但这并不能说明大小的减少,因为新的 rsidR 通常大小相同。
正如 Danra 指出的那样,.doc 文件具有相同的字节数。但是保存为 .doc 的较小文件也有这样的运行,所以我相信这是 .doc 二进制格式的产物,而不是携带信息的数据。我观察了一些往返的 .doc 文件,完全看不出外观上的差异,这支持了差异不包含信息的观点。
检查往返后创建的 XML 文件显示,主要区别在于转换为 XML 后没有删除内容的几个 rPr(运行属性)。由于 XML 删除了未使用的字符样式和属性,因此似乎可以节省。