2012-08-29 73 views
3

創建VSTO Office 2007加載項。從Office 2007加載項序列化當前ActiveDocument

我需要啓用或找到一個解決方案,我可以保存到web服務與byte[]而不是硬盤驅動器。

所以, 我轉到一個網站,並點擊一個鏈接打開該文檔時,單擊給我一個Word文檔,我選擇打開使用MS Word 2007中

文檔打開,如果我檢查數據我有:

ActiveDocument.Fullname = HTTP:// [服務器或IP]/[某些IIS文件夾] /file.asp?id=353 &類型= doc`

所以我認爲這一切都在我記憶中如果存在,不要有原始文件或臨時文件。

即使文檔處於打開狀態,我從磁盤上也沒問題。 如何從當前的ActiveDocument執行byte[]

我發現了很多答案,表明它不能完成。但是我也有一個客戶,它有一箇舊版插件,可以從當前的ActiveDocument下載byte[]

任何人都可以幫助我。

回答

2

您可以將ActiveDocument轉換爲COM互操作IPersistFile以將打開文檔的字節副本保存到本地臨時路徑,然後將其讀回以發送到您的Web服務。在Office中,如果不先儲存到磁盤,則無法讀取活動文檔中的字節。見this MSDN blog for reference

COM.IPersistFile compoundDocument = Application.ActiveDocument as COM.IPersistFile; 
compoundDocument.Save(filePath, false); 
byte[] content = File.ReadAllBytes(filePath); 
+0

我已經實現了你的代碼。它工作:)但ActiveDocument持有屬性和BuildInProperties。 –

相關問題