我有一堆存储在SQL数据库中的Word文档(.doc),需要打开、清理标题、主题等属性,然后将文件保存回数据库。
从流中打开“.doc”文件是否可能?
Word无法从内存流中打开.doc文件。要打开文件,您必须首先将文档保存到临时位置。
然而,Word鲜为人知的RTF转换器界面可用于从以RTF格式流加载文档。如果对您来说使用RTF而不是二进制格式是一个选择1,则可以查看WinWord Converter SDK:
对于导入转换器,您需要实现ForeignToRtf
方法,Word将调用该方法来接收RTF输入。
1实际上,您仍然可以将文件保存为.doc格式;但是,您需要使用SDK先将.doc文件转换为RTF,然后在Word中打开RTF流。二进制格式与RTF格式之间的转换应该大部分是无损的,因为RTF格式是与二进制格式同步开发的。但是,需要注意的是,使用RTF转换器接口将无法使用OpenXML/Office 2010引入的任何新功能。
我非常确定Word DOCUMENT对象实现了IPersistStream(COM接口)。 我 +确信+ 它实现了IPersistFile。
这并不是最容易使用的东西,而且由于它是COM,与.NET流的互操作性不太好,但我相信可以使用IPersistStream实现它。