gpt4 book ai didi

win32com操作wordAPI精讲第七集Range(五)字体格式精讲

转载 作者:我是一只小鸟 更新时间:2023-01-29 22:38:31 25 4
gpt4 key购买 nike

本课程《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,今天的内容就先到这,下节课我们接着将。有问题请留言、私信.

最后此篇关于win32com操作wordAPI精讲第七集Range(五)字体格式精讲的文章就讲到这里了,如果你想了解更多关于win32com操作wordAPI精讲第七集Range(五)字体格式精讲的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com