首页 > 解决方案 > 为什么用 python-docx 复制的 Word 文件的 XML 与原始文件不同

问题描述

我正在从已更改字体但保持相同格式、样式和信息内容的 Word 文档生成 .docx 文件。一切都通过 python-docx API 完成。

仍有一些不在 API 范围内的解决方法(例如从源代码复制数字项目符号并将非字符串插入页眉/页脚)。我正在通过 lxml 接近这些。

原始文件的 XML 和生成的文件虽然相似,但并不完全相同,无论是否缺少<w:numPr>标签。这是为什么?输出的 .docx 文件与预期的一样。

这使得使用低级 lxml 修复变得复杂。

标签: pythonxmllxmlopenxmlpython-docx

解决方案


您认为只有一种方法可以以像 OOXML 一样复杂的格式来表示文档,尤其是从独立编写的代码库生成的文档,这是非常无效的。

因此,您的问题的答案是多个 OOXML 表示可以在 Microsoft Word(或任何其他 DOCX 应用程序)中产生相同的外观;假设任何给定的库将编写任何给定的 OOXML 与任何给定的 DOCX 应用程序完全相同是不安全的。


推荐阅读