ms-word - MS Word - 允许受保护文档中的接受/拒绝按钮
问题描述
我们需要能够强制限制仅在 MS Word 文档中编辑特定部分 - 同时允许用户接受拒绝更改
我们目前正在使用 aspose Words 方法 document.protect(),ProtectionType 为“ALLOW_ONLY_FORM_FIELDS”,文档得到保护,我们可以锁定/限制部分进行编辑。但是,这也会导致 MS Word 的“审阅”选项卡中用于跟踪更改的接受/拒绝按钮被禁用 - 这会限制用户接受/拒绝更改,即使在允许编辑的部分也是如此。根据业务功能,我们需要这些选项(接受/拒绝)来启用我们的功能。
任何人都可以建议是否有任何方法可以实现上述目标?(总而言之:需要启用“接受/拒绝”按钮,同时仅允许在文档中的特定部分/段落中进行编辑)
解决方案
Word 应用程序在受保护的文档中根本不支持这一点。作为一种形式的保护锁定了所有的审查能力;保护编辑 ( wdAllowOnlyReading
) 允许用户在更改之间移动,但不允许接受/拒绝。
使这成为可能的唯一方法是包含附加到功能区的代码和/或检查当前选择是否包含修订的键盘快捷键。如果是,则文档不受保护,接受(或拒绝)修订,然后重新保护文档。以下示例代码说明了该方法。
我无法告诉您在使用 Aspose 时如何或是否可以包含功能区、键盘快捷键或 VBA 代码。如果 Aspose 可以从现有文件(模板,dotm 或 docm)创建新文档,那么这些可以包含在其中。
Sub AcceptRevisionInLockedDoc()
Dim doc As Word.Document
Dim rng As Word.Range
Set doc = ActiveDocument
Set rng = Selection.Range
If rng.Revisions.Count > 0 Then
If doc.ProtectionType = wdAllowOnlyFormFields Then 'wdAllowOnlyReading Then '
doc.Unprotect
rng.Revisions(1).Accept
doc.Protect wdAllowOnlyFormFields, True ' wdAllowOnlyReading
End If
End If
End Sub
推荐阅读
- spring - Spring/Swagger 下载 docx 文件生成损坏的文档
- css - 浏览器是否优化了屏幕外无限循环的 CSS 动画?
- aws-lambda - 为什么我不能在 aws_lambda_alias routing_config 中使用 aws_lambda_function 数据源?
- php - 用于 php 后端和 JS 前端的 NGINX 配置
- sql - 如何仅在 Sql 查询中为第一行填充列中的数据
- c# - 为什么这个文本字段可以正确发送数据,但它被接收为 Null 并且 Visual Studio 引发异常?
- python - 调用 Windows API 时如何使用 Python 字符串
- jekyll - 向 jekyll hyde 博客添加标签
- css - 如何将宽度设置为当前路由器插座的 100%?
- c# - 如何首先在两个表 asp.core 代码之间建立关系