0

我正在为 WordML 编写解析器。通过规范,我读到计算文档中页数的方法是Pages读取DocumentProperties. 如果我正确阅读了规范,DocumentProperties应该总是在那里。

在我的 Mac 上创建测试文档时,我注意到生成的 xml 中没有PagesorDocumentProperties元素。我有一个w:document,里面有一个w:body内容。

DocumentProperties强制性的还是这是 Mac 的事情?

4

1 回答 1

1

有两种不同的 Word XML 格式 - 旧的 Word 2003 XML 格式和 Office Open XML 格式,它可以保存为 .docx,其中它保存为一组 XML 和 .zip 中可能的其他文件类型容器,以及“Flat OPC”格式,它是同一事物的单文件 XML 表示。

每种格式将属性存储在不同的位置。

如果您看到一个名为 w:document 的元素,那么您实际上是以 OOXML 格式保存的。在这种格式中,“内置”属性至少保存在两个“部分”中。您通常会在名为 /docProps/app.xml 的 pkg:part 的元素中找到该元素。

至少有三个并发症:

  1. 页数实际上是 Word 保存的最后页数(假设是 Word 保存了文件)。这仅适用于特定的纸张尺寸、打印机驱动程序等。
  2. 我不认为这个元素在我提到的两种 XML 表示中的任何一种中都是强制性的。不过不确定。但据我所知,Word 会一直保存它。
  3. 在一般情况下,您不能假设该属性部分实际上将被称为 /docProps/app.xml。实际上,Word 应始终使用该名称保存它。但理论上,您必须要么寻找具有特定 URI 的元素,要么遵循与特定类型的关系。我忘记了这种情况下的细节。
于 2014-08-27T13:04:23.210 回答