学习C#调用OpenXml操作word文档的基本用法(15:学习文档主题类)

  OpenXml中使用ThemePart类保存Word文档的主题,存储定义文档整体视觉风格(颜色、字体、效果)的XML数据。采用解压缩软件打开Word文档,其内的word\theme文件夹中有独立的theme1.xml文件,用于保存文档中使用的主题信息,如下图所示,其中clrScheme部分定义颜色主题,fontScheme部分定义字体主题,fmtScheme部分定义定义形状、图表等元素的填充、线条、特效等格式主题:

  ThemePart类的Theme属性保存主题集合,其命名空间及类型为DocumentFormat.OpenXml. Drawing.Theme,通过调用Theme.ThemeElements属性获取主题格式设置选项,后者类型为DocumentFormat.OpenXml.Drawing.ThemeElements,该类型主要包含三个主题属性:ColorScheme、FontScheme、FormatScheme。
  1)ColorScheme属性:保存配色方案,负责定义 12 种颜色的列表。 十二种颜色由六种主题色、两种深色、两种浅色和一种颜色组成,每个超链接和已访问超链接各有一种颜色。该属性类型为DocumentFormat.OpenXml.Drawing.ColorScheme,后者的主要属性如下表所示,除了name属性之外,其它属性都与颜色相关,均继承自Color2Type类:

序号 名称 说明
1 Name 颜色主题名称
2 Dark1Color 深色1
3 Light1Color 浅色1
4 Dark2Color 深色2
5 Light2Color 浅色2
6 Accent1Color 主题色1
7 Accent2Color 主题色2
8 Accent3Color 主题色3
9 Accent4Color 主题色4
10 Accent5Color 主题色5
11 Accent6Color 主题色6
12 Hyperlink 超链接颜色
13 FollowedHyperlinkColor 访问过的超链接颜色

  2)FontScheme属性:保存字体方案,方案由在文档中使用的主要字体和次要字体组成。 主要字体与文档的标题区域相对应,次要字体与普通文本或段落区域对应。该属性类型为DocumentFormat.OpenXml.Drawing.FontScheme,后者的主要属性只有3个:字体主题名称Name,主要字体MajorFont、次要字体MinorFont 。MajorFont和MinorFont的类型都继承自DocumentFormat.OpenXml.Drawing.FontCollectionType,其主要属性如下:

序号 名称 说明
1 LatinFont 拉丁文字体,处理英文、法文、德文等使用拉丁字母的语言
2 EastAsianFont 东亚字体,处理中文、日文、韩文等使用汉字或音节文字的语言
3 ComplexScriptFont 复杂文字字体,处理阿拉伯文、希伯来文等具有复杂书写规则的语言

  3)FormatScheme:保存用于图表、图形等绘图对象的格式方案,包含图表中使用的填充、线条、效果等格式的集合。该属性类型为DocumentFormat.OpenXml.Drawing. FormatScheme,后者的主要属性如下表所示:

序号 名称 说明
1 Name 格式主题名称
2 FillStyleList 填充样式列表,可能包括下图所示的填充类型
3 LineStyleList 线条样式列表,可以调用Elements<DocumentFormat.OpenXml.Drawing.Outline>函数获取线条样式集合,每个线条样式均为Outline类型,后者继承自LinePropertiesType类,主要包括Alignment(线条对齐方式)、CapType(线条端点样式)、CompoundLineType(复合线类型)、Width(线宽)等属性
4 EffectStyleList 效果样式列表,可以调用Elements<DocumentFormat.OpenXml.Drawing.EffectStyle>函数获取效果样式集合,每个效果样式均为EffectStyle类型,也可能包括下图所示的效果类型
5 BackgroundFillStyleList 背景填充样式列表 ,可以调用Elements函数获取样式集合,集合中的元素类型可能包括下图所示的背景填充类型

参考文献

1https://github.com/dotnet/Open-XML-SDK

2https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk

3https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1

4https://blog.csdn.net/i042416/article/details/126228816

相关推荐
EXI-小洲3 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
三声三视10 小时前
Word 转 Markdown 报“保真率 98%“,可那张表散了
word·word转markdown·格式转换·开发者工具·tri-docx2md·结构保真
课件帮17 小时前
从Word教案到带讲解微课:课件帮一键成片全流程实操
word
2601_9499506318 小时前
Word、PDF、Excel题目怎么快速整理?
pdf·word·excel
百事牛科技1 天前
文档不想再加密了?Word打开密码移除的两种方法
windows·word
redfred1 天前
Stirling-PDF 使用教程:开源 PDF 工具箱 50+ 工具 PDF转Word/合并/压缩/OCR 桌面版 Docker 部署详解
pdf·开源·word
E_ICEBLUE2 天前
Python 实现 Markdown 转 Word、PDF:从转换到页面设置
python·pdf·word·markdown·格式转换
DS随心转小程序3 天前
Gemini只能导出了一部分Word文档,很少的一部分,不是我这个窗口所有的对话内容?
开发语言·人工智能·c#·word·豆包·deepseek·ai导出鸭
DS随心转APP3 天前
【 AI做的表格怎么导出 】?AI 导出鸭让数据流转回归优雅
人工智能·chatgpt·数据挖掘·回归·word·ai导出鸭
Am-Chestnuts3 天前
DeepSeek 回答怎么保存成 PDF?用DS随心转把对话导出为可打印文档
pdf·word