我在使用单词加载项时遇到了一些麻烦。我正在尝试创建一种新的文档格式,并让它有点工作。格式只是现有docx之上的编码。换句话说,我可以剥离编码并留下有效的word文档。
保存:
现在,当用户想要以新格式保存文档时,我提示保存原件,然后从磁盘读取原件,以新格式保存副本。这会在文件系统上留下2个文件(foo.docx和foo.myformat)。
理想情况下,我想拦截DocumentBeforeSave事件中的文档,将文档作为字节数组获取,将其转换为内存,只保存一个副本。我似乎无法找到获取字节数组的方法。
开放:
现在,当用户选择要以我的格式存储的文件打开时,我制作一个临时副本(tmp \ blah.docx),然后用Application.Documents.Open打开文档(tmp \ blah。 DOCX ...)。
我宁愿从内存流创建文档,这样我就可以避免创建临时文件了。是否可以从内存创建一个新的Word.Document?
任何方向都将不胜感激。非常感谢。
答案 0 :(得分:1)
您尝试做的事情看起来像是Word文档的经典导入/导出转换器。从Word 2007 SP2开始,您可以使用基于OpenXML的API来创建转换器。
此MSDN文章介绍了如何执行此操作:
Introducing the Open XML Format External File Converter for 2007 Microsoft Office System SP2
MSDN上还有一个示例项目:
答案 1 :(得分:0)
您可以使用.WordOpenXML
在VSTO或VBA中获取文档