2015-10-05 64 views
0

我正在研究一個包含一些書籤的Word加載項目。要更新這些字段的代碼解鎖文件有:保護除一個書籤以外的整個Word文檔

_document.Unprotect(ref _password); 

然後從服務器和鎖用拉內容:

_document.Protect(WdProtectionType.wdAllowOnlyFormFields, ref _noReset, ref _password, ref _useIrm, ref _enforceStyleLock); 

要保持一個特定的書籤解鎖我曾嘗試使用的代碼:

_document.bookmark1.Range.Editors.Add (Microsoft.Office.Interop.Word.WdEditorType.wdEditorEveryone); 

哪些不保留bookmark1未鎖定。 還有別的東西我可以嘗試使其中一個書籤解鎖而其他人被鎖定?

回答

0

我在保持可編輯的書籤前後放置了連續的分節符。然後,然後在我的LockDocument()函數,我放線:

_document.Sections[4].ProtectedForForms = false; 

所以我的整個LockDocument函數看起來像:

public void LockDocument() 
    { 
     _document.Sections[4].ProtectedForForms = false; 

     // Locks the rest of the document 
     _document.Protect(WdProtectionType.wdAllowOnlyFormFields, ref _noReset, ref _password, ref _useIrm, ref _enforceStyleLock); 
    } 
0

補充以前的答案:

的 「編輯」 的方法不適用於表單保護和表單域。如果您要使用內容控件而不是表單域,那麼您可以使用編輯器和「只讀」類型的保護。另請注意,只讀保護可實現比表單保護更多的Word功能。

請注意,每個表單域也是一個書籤:您給表單域的名稱是書籤名稱。目前還不清楚爲什麼你需要一個無保護的書籤,但如果這個信息有幫助...