2012-08-03 23 views
1

我一直在努力通過COM接口爲word文檔設置customProperties(和內置屬性),並且成功了。但是,這些屬性只能在Word中顯示,而不能在摘要選項卡中顯示。Word Properties not in Summary選項卡

問題

好了,與開幕發言中,我是一個有點誤導,簡化問題。我使用netOffice包裝與interop組件交互(使部署變得非常簡單),它用於通過ASP.Net門戶自動化郵件合併。我使用相同的方式將文檔ID添加到CustomDocumentProperties中。

此ID隨後由控制檯應用程序拾取,該控制檯應用程序使用DSOFile.dll來訪問OLE/Summary屬性。

雖然我可以在Word中看到自定義的數據庫ID字段,但它不在摘要選項卡中(見下文),我認爲這是DSOFile將它們從其中取出的位置,這會同時發生在內置屬性和自定義屬性中。我對這兩者如何不同或爲何失去同步感到茫然。

測試

從測試中,我已經做了,我很驚訝,添加/更改屬性,然後保存它們不與文檔屬性解決問題。但是,將它們保存到新文件將更新摘要。此外,在保存摘要選項卡甚至不出現的地方存在顯着的延遲,它幾乎看起來像後臺進程負責更新它們。

如果您對我沒有解決方案,我有興趣瞭解關於摘要屬性與存儲在word文檔中的摘要屬性的不同之處。

shows that properties aren't set in the summary tab, but are set in word..

在情況下,它是很重要的,我今天與添加的屬性問題是不是典型的節省文檔時不「髒」。相反,我保持模板打開以及完成的文檔,並需要在保存前激活它。

讓我知道如果我錯過了任何重要的細節,提前致謝!

回答

1

(這是一些評論在這個問題上的整合)

這是不可能的,你將能夠查看文件系統的屬性瀏覽器自定義屬性,而文件是在Word中打開。

這可能是一種安全機制,可防止通過兩個獨立進程同時更新屬性。

OLE結構化存儲文件是OLE對象。它們僅在對象的OLE引用計數減少爲0時纔會關閉。

因此,如果例如某些代碼正在使用DSOFile添加屬性並且未釋放OLE對象,則該文件保持打開狀態。其他進程試圖更新文件的行爲可能與它們如果OLE對象被釋放並且fie被「關閉」時的行爲不同。