0

我正在开发一个包含一些书签的 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);

这不会使书签1 保持解锁状态。还有什么我可以尝试让一个书签解锁而其他书签被锁定吗?

4

2 回答 2

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);
    }
于 2015-10-06T16:07:12.590 回答
0

补充上一个答案:

“编辑器”方法不适用于表单保护和表单域。如果您要使用内容控件而不是表单字段,那么您可以使用编辑器和“只读”类型的保护。另请注意,只读保护支持比表单保护更多的 Word 功能。

请注意,每个表单域也是一个书签:您为表单域指定的名称就是书签名称。目前尚不清楚为什么您需要不受保护的书签,但如果此信息有帮助...

于 2015-10-07T16:53:19.903 回答