【问题标题】:How does the .doc format work?.doc 格式如何工作?
【发布时间】:2010-09-12 14:20:40
【问题描述】:

我最近了解了 .docx 文件的基本结构(它是一个特殊结构的 zip 存档)。但是,docx 的格式不像 doc。

doc 文件是如何工作的?文件格式、结构等是什么?

【问题讨论】:

标签: zip format docx doc


【解决方案1】:

二进制 .doc 文件的完整格式记录在来自 (the Wikipedia article on .doc) 的 this pdf

【讨论】:

  • 如果只是二进制文件格式,为什么我可以通过 WinRar 打开 .doc 文件?
【解决方案2】:

.doc 格式相当复杂。与大多数 Microsoft 格式一样,它反映了版本和旧支持之间的长期变化历史。他们不久前发布了它,所以如果你想查看它(以及其他 pre-Office 2007 格式),knock yourself out here

【讨论】:

    【解决方案3】:

    有 Microsoft Word 的 .doc,然后是纯文本 .doc。听起来您想知道专有的 Microsoft 格式。

    来自Wikipedia

    DOC 格式因 Microsoft Office Word 格式而异。最高 97 的 Word 版本使用的格式与 97 和 2003 之间的 Microsoft Word 版本不同。

    直到 Word 2007,.docx 虽然是打包文件,但不一定是 .zip 存档。它是一个结构化的 XML 文档。

    【讨论】:

      【解决方案4】:

      这不是您问题的直接答案,但我强烈建议您阅读 Joel Spolsky 的文章 Why are the Microsoft Office file formats so complicated? (And some workarounds)。它将让您深入了解 .doc 格式的复杂程度以及原因。 Joel 还对 .doc 格式的组成进行了非常基本的概述:

      您看,Excel 97-2003 文件是 OLE 复合文档,本质上是文件 单个文件中的系统。这些足够复杂,您必须阅读 另一个 9 页规范来解决这个问题。而这些“规范”看起来更像是 C 数据 结构比我们传统上认为的规范。这是一个完整的分层文件 系统。

      (引用是指 Excel 文件,但它也适用于 Word 文档)。内容丰富的文章,有助于理解为什么 .docx 和 ODF 文件的结构和设计在从外部角度检查时更加合乎逻辑。

      【讨论】:

        【解决方案5】:

        MS Word DOC 格式背后的基本思想是一个 OLE 复合文档,正如 Kibbee 已经写的那样,它基本上是一个内存转储。这是一种非常复杂且令人费解的文档存储方式,但是如果您曾经真正深入研究过 Word 应用程序,您就会知道它有多么疯狂的功能,如果您在商业环境中使用过它,您将拥有一个很好的感受它如何与 Office 系列中的其他程序集成。

        一般来说,OLE 复合文档是非常可扩展的结构,它允许您将各种数据填充到一个文件中,甚至在某种程度上可以处理您没有安装应用程序的数据。例如,如果您将 Equation 对象(来自 MS Equation Editor)插入到文档中,它将被存储为子对象,就像文件中的文件一样,但该对象不仅包含 Equation Editor 所需的数据为了编辑和渲染它,它还存储了一个通用位图(或元文件,也许)表示,因此它可以在没有安装方程式编辑器的机器上显示,尽管没有编辑。

        这就是为什么,对于如何你必须阅读其他人已经链接到的规范;)

        如果您想以简单的方式处理文件,请确保您的软件在安装了 Word 的 Windows 计算机上运行,​​然后使用 COM/OLE 自动化打开和操作文档。这样你就不用担心文件格式了。

        【讨论】:

          【解决方案6】:

          Doc 是 word 文档的二进制格式 - 这里是 Microsoft Office Word 97-2007 Binary File Format Specification [*.doc] 文档。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-11-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多