我最近了解了 .docx 文件的基本结构(它是一个特殊结构的 zip 存档)。但是,docx 的格式不像 doc。
doc文件如何工作?文件格式、结构等是什么?
这不是您问题的直接答案,但我强烈建议您阅读 Joel Spolsky 的文章,为什么 Microsoft Office 文件格式如此复杂?(以及一些解决方法)。它将让您深入了解 .doc 格式的复杂程度以及原因。Joel 还对 .doc 格式包含的内容进行了非常基本的概述:
您会看到,Excel 97-2003 文件是 OLE 复合文档,它们本质上是单个文件中的文件系统。这些非常复杂,您必须阅读另外 9 页的规范才能弄清楚。这些“规范”看起来更像是 C 数据结构,而不是我们传统上认为的规范。它是一个完整的分层文件系统。
(引用是指 Excel 文件,但它也适用于 Word 文档)。内容丰富的文章,有助于理解为什么 .docx 和 ODF 文件的结构和设计在从外部角度检查时更加合乎逻辑。
二进制 .doc 文件的完整格式记录在此 pdf中(来自.doc 的 Wikipedia 文章)
MS Word DOC 格式背后的基本思想是一个 OLE 复合文档,正如 Kibbee 已经写的那样,它基本上是一个内存转储。这是一种非常复杂且令人费解的文档存储方式,但是如果您曾经真正深入研究过 Word 应用程序,您就会知道它有多么疯狂的功能,如果您在商业环境中使用过它,您将拥有一个很好的感受它如何与 Office 系列中的其他程序集成。
通常,OLE 复合文档是非常可扩展的结构,它允许您将各种数据填充到一个文件中,甚至在某种程度上可以处理您没有安装应用程序的数据。例如,如果您将 Equation 对象(来自 MS Equation Editor)插入到文档中,它将被存储为子对象,就像文件中的文件一样,但该对象不仅包含 Equation Editor 所需的数据为了编辑和渲染它,它还存储了一个通用位图(或元文件,也许)表示,因此它可以在没有安装方程式编辑器的机器上显示,尽管没有编辑。
这就是为什么,因为您必须如何阅读其他人已经链接到的规范;)
但是,如果您想以简单的方式处理文件,请确保您的软件在安装了 Word 的 Windows 计算机上运行,然后使用 COM/OLE 自动化打开和操作文档。那时您不必担心文件格式。
.doc 格式相当复杂。与大多数 Microsoft 格式一样,它反映了版本和旧支持之间的长期变化历史。他们不久前发布了它,所以如果您想查看它(以及其他 Office 2007 之前的格式),请点击此处。
Doc 是 word 文档的二进制格式 - 这是Microsoft Office Word 97-2007 Binary File Format Specification [*.doc]文档。