win32com操作word API精讲 第七集 Range(五)字体格式精讲
本课程《win32com操作word API精讲&项目实战》视频平台以视频为主,本平台以文字为主,公众号ID:一灯编程
本节课主要讲解使用Range
操作Font
接口中的字体、字号、下划线、删除线、字体颜色、高亮及底纹颜色。
讲解中所涉及到的文档请自备,演示中,文档内容共两段,内容如下:
在娱乐圈,沈腾和马丽是大家公认的最佳搭档,事业上他们相伴十几年,一起走红毯,一起上春晚,一起拍电影,成就了惺惺相惜的友情。
记者:采访前我专门给沈腾发了信息,今天我要采访马丽,你想对她说什么?他给我回复的你猜是什么?
打开客户端和文档
from win32com.client import Dispatch
client = Dispastch('word.Application')
client.Visible = 1
doc = client.Documents.Open('演示文档.docx')
# 选中第一段,下方的所有演示都会操作该Range对象
rng = doc.Paragraphs(1).Range # 或者doc.Paragraphs.Item(1).Range
在之前的课程中,我们使用了以下的方式选中某个段落:
rng = doc.Range(0,0)
rng.MoveEnd(4,1)
这是鉴于课程尚未讲解Paragraphs
接口所采取的方案,实际开发中,哪种方式便利就使用哪种方式。在此,让我们再次简单重温一下word编程对象集合
的概念(这个概念对于初学者而言往往不容易领悟)。
word编程中,存在大量的集合
,如Documents
集合,Paragraphs
集合,Words
集合,Characters
集合等等,集合
用来管理word编程某种类型的资源,我们可以将集合比喻为公司的部门。每个部门管理各自的员工,Documents
是所有文档对象(Dcument
)的集合,这个部门的员工等同于每个文档对象,Documents
可以很方便地统计当前共有多少个文档,可随时切换并操作某个文档。
我们在选中演示文档第一段时,就是用了Paragraphs
对象集合,通过索引1
选中了第一段,单个段落对象Paragraph
表示某个段落,并提供了Range
属性,使用该属性就可以创建一个Range
对象从而表示选中了某范围。
实际上,大部分资源类型的对象都有
Range
属性,这极大地方便我们创建选中范围以便操作资源。
操作字体、字号
# 获取或设置字体,文档中能展示出来的字体才能设置
rng.Font.Name
rng.Font.Name = '黑体'
# 获取或设置字号,支持int和float,推荐使用float
rng.Font.Size
rng.Font.Size = 14.0
注意混合格式的问题,当前范围内如何存在多种字号或字体,使用当前范围的Range
是获取不到结果的,在对格式要求严格的开发项目中,我们需要使用别的方法来处理,具体方案在项目实战部分hiu讲到。
操作加粗、下划线、删除线
# 获取或设置范围内容的字体加粗
rng.Bold
rng.Bold = True # 赋值False可取消加粗
# 获取或设置下划线
# 使用rng.Font.UnderLine 也可以 两者都有UnderLine的属性
rng.UnderLine = 1 # 赋值0可取消下划线
# 获取或设置删除线
# 赋值False可取消删除线
rng.Font.StrikeThrough = True
下划线说明:
通过常量来控制下划线的类型,对应文档:https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.office.interop.word.wdunderline?view=word-pia
其中0
表示无下划线,7
是默认的单下划线。
字体颜色
rng.Font.Color = 255
Color
仅支持int32
的值,微软在接口中内置了不少的颜色的int32
数值,常用的要记得,如0
为黑色,255
为红色。对应文档:https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.office.interop.word.wdcolor?view=word-pia
当我们使用自定义颜色时,不能直接将rgb
值赋给Color
,需要其转换为int32
才可以使用,具体操作办法,公众号ID:一灯编程,回复rgb
。
Font
接口也提供了ColorIndex
来操作字体颜色,与Color
的区别有二,一是前者只能使用内置的索引值来操作颜色,不能像Color
一样可使用自定义颜色,二是前者还可以用来控制字体边框的颜色。
高亮颜色
高亮颜色是客户端中的笔刷,像我们生活中使用的荧光笔一样,在纸上做标记。
# 获取或设置高亮颜色
rng.HighLightColorIndex = 7
在word的接口中,但凡带有Index
字样的都是索引值,其最大的特点就是不支持自定义,这里也一样,我们只能使用指定的HighLightColorIndex
,对应文档: https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.office.interop.word.wdcolorindex?view=word-pia
注意,HighLightColorIndex
接口在Range
接口下被封装成属性,在Font
接口中并没有这个属性。高亮颜色是荧光笔在字上面划过的效果,它会覆盖下面要演示的底纹颜色
底纹颜色
# 获取或设置底纹颜色
rng.Shading.BackgroundPatternColor = 255
底纹颜色不只有文本才有,所以它有一个独立的接口为Shading
,很巧,它又被封装到了Range
中成了众多属性之一。
BackgroundPatternColor
和上面的Color
一样,仅支持int32
。记得,底纹颜色会被高亮覆盖。
ok,今天的内容就先到这,下节课我们接着将。有问题请留言、私信。
最新文章
- Redis的入门及注意事项
- jQuery-1.9.1源码分析系列(六) 延时对象续——辅助函数jQuery.when
- 运行带cocoa pods 的项目,遇到的问题是找不到文件,解决办法
- 在CentOS中安装中文支持
- Popup - 弹出层
- PHP多态的理解
- Java自定义注解开发
- OGG-03517 Conversion from character set failed解决方法
- shell运算
- [POJ] #1007# DNA Sorting : 桶排序
- redis存储对象,实体类新加字段空指针问题处理
- HTML特殊字符编码大全
- Js操作Select大全(取值、设置选中)
- C语言关键字-volatile
- 乱序双发射 和 GHB的分支预测
- PHP安全编程:register_globals的安全性 全局变量注册(转)
- UVA 10285 Longest Run on a Snowboard(记忆化搜索)
- 两道二分coming~
- (大数据工程师学习路径)第二步 Vim编辑器----高级功能入门
- MVC 接受Flash上传图片
热门文章
- VMware Fusion配置NAT静态IP
- C#接口设计
- 对于python中“FileNotFoundError: [Errno 2] No such file or directory”的解决办法
- Latex数学公式学习
- 产生10个1-20以内的随机数,要求不能重复(集合)Java
- 【每日一题】【二分mid&;贪心】2022年2月8日-NC163 最长上升子序列(一)
- ARC145~152 题解
- angr_ctf——从0学习angr(一):angr简介与核心概念
- MySQL基础知识(二)-超详细 Linux安装MySQL5.7完整版教程及遇到的坑
- 去哪儿是如何做到大规模故障演练的?|TakinTalks