.doc格式如何运作?

时间:2020-03-06 14:38:14  来源:igfitidea点击:

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

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

解决方案

二进制.doc文件的完整格式已在pdf中记录(来自Wikipedia上有关.doc的文章)

.doc格式非常复杂。像大多数Microsoft格式一样,它反映了版本和旧版支持之间进行更改的悠久历史。他们不久前就发布了它,因此,如果我们要查看它(以及其他Office 2007以前的格式),请在此处退出。

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

从维基百科:

The DOC format varies among Microsoft Office Word Formats. Word versions up to 97 used a different format from Microsoft Word version between 97 and 2003.

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

这不是我们问题的直接答案,但我强烈建议我们阅读Joel Spolsky的文章,为什么Microsoft Office文件格式如此复杂? (以及一些解决方法)。它将使我们深入了解.doc格式的真正复杂程度以及原因。 Joel还提供了.doc格式组成的非常基本的概述:

You see, Excel 97-2003 files are OLE compound documents, which are, essentially, file 
  systems inside a single file. These are sufficiently complicated that you have to read 
  another 9 page spec to figure that out. And these “specs” look more like C data 
  structures than what we traditionally think of as a spec. It's a whole hierarchical file 
  system.

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

MS Word DOC格式的基本思想是OLE Compund文档,正如Kibbee已经编写的那样,它基本上是一个内存转储。这是一种非常复杂且复杂的文档存储方式,但是,如果我们曾经真正钻研过应用程序Word,我们将知道它具有许多功能,并且如果我们在业务环境中使用它,我们将拥有一个很好的对它如何与Office系列中的其他程序集成的感觉。

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

这就是为什么,因为我们将必须阅读其他人已经链接的规范;)

但是,如果希望使用简单的方法来处理文件,请确保软件在装有Word的Windows计算机上运行,​​然后使用COM / OLE Automation打开和处理文档。这样,我们就不必担心文件格式了。

Doc是Word文档的二进制格式,这是Microsoft Office Word 97-2007二进制文件格式规范[* .doc]文档。