Word.DocumentProperties.security是什么意思?

时间:2019-05-21 10:17:03

标签: office-js office-addins

我正在为Word开发Office加载项,所以我正在使用OfficeJ。

我有这段代码,如果Word文档处于只读模式,它应该执行一些工作。

Word.run(function (context) {
   var prop = context.document.properties;
   prop.load("*");

   return context.sync().then(function () {
       if (prop.security && prop.security !== 0) {
           // do some stuff
       }
   });
});

我不了解prop.security的含义。我试图将Word文档模式更改为只读,但是即使重新加载加载项后prop.security的值也不会立即更改。有时prop.security的值为0,其他时候的值为8

official documentation仅说:Gets the security of the document,但没有解释这些值的含义。

有人可以帮我解释一下Word.DocumentProperties.security的工作原理吗?

1 个答案:

答案 0 :(得分:2)

更新3

Microsoft的开发人员已找到正式文档。它是Open Office XML标准的一部分,特别是DocSecurity元素:ISO/IEC 29500-1:2016(下载zip文件,并在PDF中搜索“ DocSecurity”。)有关Microsoft如何在此处实现它的更多信息: 2.1.1713 Part 1 Section 22.2.2.7, DocSecurity 。本文档确认下面的UPDATE 2中的列表正确。 (因此,忽略“(可能)”。)此外,它表明列出的16个值是唯一可能的值。

更新2

根据下面的OP注释,这是更新的值列表。我无法验证标记为“(可能)”的标记,但是基于该模式,我非常确信它们是正确的。这不一定是完整的。值可能高于15。

0 = File on disk is read/write
1 = Protect Document: File is encrypted and requires a password to open
2 = Protect Document: Always Open as Read-Only
3 = Protect Document: Both #1 above and #2
4 = File on disk is read only
5 = Both #1 above and #4 above
6 = Both #2 and #4
7 = (Probably) All of #1, #2, and #4
8 = Protect Document: Restrict Edit to read-only
9 = Both #1 and #8
10 = Both #2 and #8
11 = All of #1, #2, and #8
12 = (Probably) Both #4 and #8
13 = (Probably) All of #1, #4, and #8
14 = (Probably) All of #2, #4, and #8
15 = (Probably) All of #1, #2, #4, and #8

更新: 它不是2的幂,并且某些值与“文件”菜单中的保护文档选项相关。这是我已经发现的值:

0 = File on disk is read/write
1 = Protect Document: File is encrypted and requires a password to open
3 = Protect Document: Both #1 above and #6 below
4 = File on disk is read only
5 = Both #1 above and #4 above
6 = Protect Document: Always Open as Read-Only
8 = ?

请注意,某些保护文档选项会禁用脚本实验室,因此我无法测试它们是否具有wdPropertySecurity值。我认为,但尚未测试,它们会阻止任何加载项,因此,如果存在,则加载项永远不会返回这些值。

enter image description here

原始答案: 我从Word团队的开发人员那里得到了一些信息。 BuiltInDocumentProperties(wdPropertySecurity)值引用文档作为磁盘上的文件的属性。当您将视图模式设置为只读时,您不会更改对磁盘上文件的访问,因此wdPropertySecurity值不应更改。如果它是0,则应保持0。开发人员发现了04的含义。既然您已经看过8,那么看起来它们是2的幂,因此也可能还有2。这是开发人员报告的内容:

0 = read/write
2 = ?
4 = read only
8 = ?

如果我发现更多内容,我将添加。同时,您能否提供导致获得8的确切步骤?