为什么只有一些页码存储在 docx 文件的 XML 中?

Why only some page numbers stored in XML of docx file?

我在页脚中添加了一些页码。它在文档中正确可见。但是如果我解压缩 docx 并检查 footer.xml 只有一些随机页码在那里。那么 MS-Word 如何正确显示页码,以及它存储所有页码的位置?

没有关于在 Word Open XML 文档中存储页码的逻辑。基本上,您在 Word Open XML header/footer 部分中看到的页码是没有意义的,因为它们会在文档打开时自动重新生成,并且很可能无法反映实际的分页。

Word 中的所有动态内容(例如页码)均由 字段 管理。字段基本上有两部分:字段代码和字段结果。你可以在Word Open中看到这个结构XML.

根据字段类型及其位置,字段将自动更新或需要显式更新。 header/footer 区域中的 PAGE 字段自动更新,几乎在 Word UI.

的整个编辑过程中

对于需要显式更新的字段,Word 通常会将最后的结果存储在文档中。但是 Word 自动更新的字段可能会也可能不会存储最后的结果。另外,无法保证下次打开文档或编辑文档时存储的结果是正确的。根据不同的机器,打开文档时页面布局可能会发生变化。因此,您在打开 XML 中看到的任何页码都不能保证在打开文档时位于同一位置。

总页数,但是,存储在文档属性中的 可能 是正确的 - 也取决于页面布局下次打开文档时完成。

下面的文章包含一些字段更新的相关信息:https://support.microsoft.com/en-us/help/211629/which-fields-are-updated-when-you-open--repaginate--or-print-document