最近在写win32com的系列教程(win32com是python操作word的一哥),在Font接口中,有两个接口可以对字体设置颜色(当然,接口中都有预设的颜色int32,但太有限了,无法避免需要自定义颜色):
| 接口 | 性质 | 值类型 |
|---|---|---|
Range.Font.Color | 属性 | int32 |
Range.Font.TextColor.RGB | 属性 | int32 |
Range.Font.ColorIndex | 属性 | int32(预设值) |
Range.Font.ColorIndex使用的是预设值,-1至16的int,第一个和第二个属性只接受int32,而且是rgb颜色码转成int32才能生效,直接传rgb如(255,0,0)会出错的,因为它们只接受int32,没办法了,只能想办法将rgb转换成int32。
以下是python语言下,rgb转int32的实现:
# rgb转int32
# rgb颜色码为155,229,25
# b # g # r
print((0xff << 24)|(25 << 16)|(229 << 8)|155)
>>>
4279887259 # 将这个int赋值给第一或第二个接口就能实现自定义颜色的设置了
# int32转rgb
print((4279887259 & 0xff0000) >> 16 ) # b
print((4279887259 & 0xff00) >> 8) # g
print(4279887259 & 0xff) # r
>>>
25
229
155