使用Word的CustomXMLPart或任何其他支持的方式存储UTF-8 XML

时间:2010-06-05 20:37:07

标签: c++ xml visual-c++ ms-word openxml

我正在编写一个Word加载项,它应该使用Word对象模型及其CustomXMLPart为每个文档存储一些自己的XML数据。我现在面临的问题是缺少IStream - 类似于从CustomXMLPart读取/写入XML的功能。它只提供BSTR接口,我很困惑如何使用BSTR来处理UTF-8 XML。根据我的理解,UTF-8 XML文件应该永远不必进行这种Unicode转换。我不确定在这里可以期待什么。

是否有另一种使用Word自动化接口在DOCX文件中存储任意自定义信息的方法?

1 个答案:

答案 0 :(得分:1)

“包”是OPC文档(Open Packaging Convention),它基本上是具有不同扩展名的结构化zip文件夹(例如.pptx,.docx,.xps等)。您可以在流中获取该文件并以您喜欢的方式操作它 - 但不是艺术性的。如果你把东西放在错误的地方(不仅仅是xml元素,还有zip文件里面文件夹中的文件),它将不会被识别为有效的docx。但如果你只是说“artibitrary”意思是CustomXMLPart,那就没关系。

This是一个很好的标题页面,可以了解有关Open XML SDK的更多信息,如果你愿意的话,它可以比使用(.NET)系统更容易地访问文件格式。 IO.Packaging或第三方zip库。要深入了解,请抓取电子书(免费)Open XML Explained

在.NET中使用Open XML SDK(再次,这可以在没有SDK的情况下完成),这就是您要做的事情:How to: Insert Custom XML to an Office Open XML Package by Using the Open XML API