我正在尝试确定以编程方式从 Microsoft Word 文档 (docx) 中提取“编辑器”的最佳方法 - 特别是当您通过“审阅”选项卡->“保护”部分,“限制编辑”选项->“2.编辑限制”部分->“个人”列表框。如果这可能在没有代码的情况下以某种方式实现,我提到 SharePoint 将用于在工作流期间提取此信息。
我相信我可以通过解压缩文件并在 document.xml 文件中搜索“w:permStart”节点来做到这一点,我不愿诉诸这种黑客攻击,因为如果微软决定它可能会在某个时候中断改变事情。
Office API 似乎提供了一种可能性(编辑器界面),但我现在无法测试它,我不肯定它甚至处于 api 的正确级别,因为它是一个接口而不是文档对象的实际属性或类似的。
编辑
Word 2010 UI 通过打开面板的按钮(或Word 2007 中的按钮)列出了我要在Review
选项卡下、Protect
功能区区域中提取的名称。Restrict Editing
Protect Document
Restrict Formatting and Editing
在此面板的第二部分(标记为2. Editing restrictions
)中,如果没有标记为Individuals
(Underneath Exceptions (optional)
)的框,请选中该Allow only this type of editing in the document
复选框(在其后的下拉列表中选择什么并不重要)。
这将允许在该Exceptions (optional)
部分下添加用户,这是通过单击More users...
链接打开一个对话框来完成的,在该对话框中键入电子邮件地址(连接到 Microsoft 身份验证服务器)或域用户帐户(如果 Word 在域系统上运行时间)用分号隔开。这些用户将被添加到标有标签的列表中Individuals
- 这是我想从 word 文档中提取的列表(如下图所示)。
此列表用于对下拉列表中指定的一般文档规则进行“例外”,并且只会保存与给定例外范围关联的名称 - 通过将电子邮件或名称添加到列表中来创建范围,选择一个块文本(或整个文档),然后选中该名称旁边的复选框以将其与所选范围相关联。保存文档时,对该名称的引用将作为w:ed
一个或多个w:permStart
元素的属性添加到基础 document.xml 文件(每个文本范围一个元素)
我可以解压缩 docx 文件,解析 document.xml 文档并提取这些元素中这些属性中的所有名称,但如果有 Microsoft Word API 替代方法,那将非常不雅 - 我更喜欢通过 API因为它几乎肯定会更易于维护和稳定。