我正在处理包含一些书签的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 :(得分: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);
}
答案 1 :(得分:0)
补充上一个答案:
“编辑器”方法不适用于表单保护和表单字段。如果您要使用内容控件而不是表单字段,那么您可以使用编辑器和“只读”类型的保护。另请注意,只读保护可以实现比表单保护更多的Word功能。
请注意,每个表单字段也是书签:您为表单字段指定的名称是书签名称。目前尚不清楚为什么需要一个不受保护的书签,但如果这些信息有帮助......