我正在编写一个 Word 加载项,它应该使用 Word 对象模型及其 CustomXMLPart
为每个文档存储一些自己的 XML 数据。我现在面临的问题是缺少用于从 CustomXMLPart
读取/写入 XML 的类似于 IStream
的功能。它只提供 BSTR
接口(interface),我很困惑如何用 BSTR
处理 UTF-8 XML。据我了解,UTF-8 XML 文件实际上永远不必进行这种 Unicode 转换。我不确定这里会产生什么结果。
是否有另一种方法可以使用 Word 自动化界面在 DOCX 文件中存储任意自定义信息?
最佳答案
“包”是一个 OPC 文档 ( Open Packaging Convention ),它基本上是一个具有不同扩展名(例如 .pptx、.docx、.xps 等)的结构化 zip 文件夹。您可以在流中获取该文件并以您喜欢的任何方式对其进行操作 - 但不是任意的。如果您将内容放在错误的位置(不仅是 xml 元素,还有 zip 文件中文件夹中的文件),它将不会被识别为有效的 docx。但是,如果您只是在谈论“任意”意思是 CustomXMLPart
,那没关系。
This是了解更多关于 Open XML SDK 的很好的启动页面如果您愿意,这比使用 (.NET) System.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 .
关于c++ - 使用 Word 的 CustomXMLPart 或任何其他支持的方式存储 UTF-8 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982002/