OpenXml中使用DocumentSettingsPart类保存Word文档的文档级设置,例如文档保护、字段更新行为等信息。采用解压缩软件打开Word文档,其内的word文件夹中有独立的settings.xml文件,用于保存文档设置信息。
1)WriteProtection属性:用于文档的写入保护设置。 写入保护是指无法编辑文档内容的模式,并且不能使用相同的文件名重新保存文档。类型为WriteProtection,其主要属性如下表所示:
| 序号 | 名称 | 说明 |
|---|---|---|
| 1 | Recommended | 在用户界面中推荐写入保护,OnOffValue类型 |
| 2 | CryptographicProviderType | 加密提供程序类型,从枚举值CryptProviderValues内取值,如RsaFull、Custom等 |
| 3 | CryptographicAlgorithmClass | 加密算法类,从枚举值CryptAlgorithmClassValues内取值,如Hash、Custom等 |
| 4 | CryptographicAlgorithmType | 加密算法类型,从枚举值CryptAlgorithmValues内取值,如TypeAny、Custom等 |
| 5 | CryptographicAlgorithmSid | 加密哈希算法,类型为Int32Value,如1(MD2)、2(MD4)、3(MD5)、4(SHA-1)等,详细介绍见参考文献5 |
| 6 | CryptographicSpinCount | 运行哈希算法的迭代次数,类型为UInt32Value |
| 7 | CryptographicProvider | 加密提供程序,字符串类型 |
| 8 | AlgorithmIdExtensibility | 加密算法扩展性,此值应基于特性的值 algIdExtSource 进行解释,以确定使用的算法, |
| 9 | AlgorithmIdExtensibilitySource | 算法扩展性源,指定定义特性指定的algIdExt算法值的应用程序 |
| 10 | CryptographicProviderTypeExtensibility | 加密提供程序类型扩展性,指定已使用Office Open XML标准版未定义的加密提供程序类型来生成随本文档一起存储的哈希值 |
| 11 | CryptographicProviderTypeExtSource | 提供程序类型扩展性源,指定定义由 cryptProviderTypeExt 特性指定的提供程序类型值的应用程序 |
| 12 | Hash | 密码哈希,指定随文档一起存储的密码的哈希值 |
| 13 | Salt | 密码验证程序 |
| 14 | AlgorithmName | 指定自定义加密算法的名称 |
2)View属性:用于文档视图设置,指定应用程序打开时应显示文档内容的方式,类型为View,从枚举值ViewValues内取值。

3)Zoom属性:用于放大设置,指定应用程序显示文档时应应用于文档的放大级别,类型为Zoom,主要包括Percent 、Val,前者设置缩放百分比,后者从枚举值PresetZoomValues内取值。

4)RemovePersonalInformation属性:设置是否从文档属性中删除个人信息,类型为RemovePersonalInformation,布尔值类型。
5)RemoveDateAndTime属性:设置是否从批注中删除日期和时间,类型为RemoveDateAndTime,布尔值类型。
6)DoNotDisplayPageBoundaries属性:设置是否显示页眉/页脚或页之间的视觉边界,类型为DoNotDisplayPageBoundaries,布尔值类型。
7)DisplayBackgroundShape属性:设置是否显示文档时显示背景对象,类型为DisplayBackgroundShape,布尔值类型。
8)PrintPostScriptOverText属性:设置是否使用文档文本打印PostScript代码,类型为PrintPostScriptOverText,布尔值类型。
9)PrintFractionalCharacterWidth属性:设置是否打印小数字符宽度,类型为PrintFractionalCharacterWidth,布尔值类型。
10)PrintFormsData属性:设置是否仅打印表单字段内容,类型为PrintFormsData,布尔值类型。
11)EmbedTrueTypeFonts属性:设置是否嵌入TrueType字体,类型为EmbedTrueTypeFonts,布尔值类型。
12)EmbedSystemFonts属性:设置是否嵌入通用系统字体,类型为EmbedSystemFonts,布尔值类型。
13)SaveSubsetFonts属性:设置是否保存嵌入时的子集字体,类型为SaveSubsetFonts,布尔值类型。
14)SaveFormsData属性:设置是否仅保存表单字段内容,类型为SaveFormsData,布尔值类型。
15)MirrorMargins属性:设置是否启用镜像页边距,类型为MirrorMargins,布尔值类型。
16)AlignBorderAndEdges属性:设置是否将段落边框和表格边框与页面边框对齐,类型为AlignBorderAndEdges,布尔值类型。
17)BordersDoNotSurroundHeader属性:设置是否页面边框排除页眉,类型为BordersDoNotSurroundHeader,布尔值类型。
18)BordersDoNotSurroundFooter属性:设置是否页面边框排除页脚,类型为BordersDoNotSurroundFooter,布尔值类型。
19)GutterAtTop属性:设置是否将Gutter置于页面顶部,类型为GutterAtTop,布尔值类型。
20)HideSpellingErrors属性:设置是否隐藏拼写错误的视觉指示,类型为HideSpellingErrors,布尔值类型。
21)HideGrammaticalErrors属性:设置是否隐藏语法错误的视觉指示,类型为HideGrammaticalErrors,布尔值类型。
参考文献
1\]https://github.com/dotnet/Open-XML-SDK \[2\]https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk \[3\]https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1 \[4\]https://blog.csdn.net/i042416/article/details/126228816 \[5\]https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.writeprotection.cryptographicalgorithmsid?view=openxml-3.0.1