【问题标题】:How to programmatically insert comments into a Microsoft Word document?如何以编程方式将注释插入 Microsoft Word 文档?
【发布时间】:2010-10-08 19:29:25
【问题描述】:
寻找一种以编程方式将 cmets(使用 Word 中的 cmets 功能)插入 MS Word 文档中特定位置的方法。我更喜欢一种可以在最新版本的 MS Word 标准格式中使用并且可以在非 Windows 环境中实现的方法(最好使用 Python 和/或 Common Lisp)。我一直在查看 OpenXML SDK,但似乎无法在那里找到解决方案。
【问题讨论】:
标签:
python
ms-word
common-lisp
openxml
【解决方案1】:
这是我所做的:
- 使用 word 创建一个简单的文档(即非常小的文档)
- 在 Word 中添加评论
- 另存为 docx。
- 使用python的zip模块访问压缩包(docx文件为ZIP压缩包)。
- 将条目“word/document.xml”的内容转储到存档中。这是文档本身的 XML。
这应该让您知道您需要做什么。之后,您可以使用 Python 中的 XML 库之一来解析文档,对其进行更改并将其添加回扩展名为“.docx”的新 ZIP 存档。只需从原始 ZIP 复制所有其他条目,您就有一个新的、有效的 Word 文档。
还有一个库可能会有所帮助:openxmllib
【解决方案2】:
如果这是服务器端(非交互式),则不支持使用 Word 应用程序本身(但我认为这不适用)。所以要么走这条路,要么使用OpenXML SDK 来学习创建评论所需的标记。有了这些知识,一切都与操纵数据有关。
.docx 格式是具有定义结构的 XML 文件的 ZIP,因此大多数情况下,一旦您进入 ZIP 并获得正确的 XML 文件,就变成了修改 XML DOM 的问题。
最好的方法可能是获取一个 docx,复制它,在其中添加评论(使用 Word),然后进行比较。差异将显示您需要在 SDK(或 ISO/Ecma 标准)中查找的元素/结构类型。