当前位置:  首页>> 技术小册>> Python与办公-玩转PPT

自动形状是可以被填充颜色的,如果没有填充,它会有默认颜色,比如说上面代码中添加的圆角矩形,并没有设置填充颜色,但用PPT软件打开之后会发现它是蓝色的。如果要修改这些自动形状的颜色,可以访问Shape对象的f i ll属性,它会返回一个FillFormat对象,我们可以通过FillFormat对象控制Shape的颜色,主要是前景色和背景色。代码如下:

  1. from pptx import Presentation
  2. from pptx.dml.color import RGBColor,ColorFormat
  3. from pptx.util import Inches
  4. ppt = Presentation()
  5. slide = ppt.slides.add_slide(ppt.slide_layouts[0])
  6. left = top = width = height = Inches(3)
  7. shape = slide.shapes.add_shape(5,left,top,width,height)
  8. fill = shape.fill
  9. print(type( fill)) # 输出:<class 'pptx.dml.fill.FillFormat'>
  10. # 使用纯色
  11. fill.solid()
  12. # 修改前景色
  13. fill.fore_color.rgb = RGBColor.from_string("F0FFF0")
  14. print( fill.fore_color.rgb) # 输出:F0FFF0
  15. # 继承父元素颜色
  16. fill.patterned()
  17. print( fill.back_color.rgb) # 输出:FFFFFF
  18. # 变透明
  19. fill.background()
  20. ppt.save("./ppt_ files/test.pptx")

前景色就是我们打开PPT可以最直观地看到的颜色,如果要设置前景色,一定要先调用一下FillFormat对象的solid()方法,然后再修改该对象fore_color.rgb属性的值,不然程序会报错的。关于RGB颜色的知识点之前已经讲过了,这里不再赘述,至于颜色的表示,还是得用到我们的老朋友RGBColor类。背景色是通过调用FillFormat对象的patterned()方法继承父元素的颜色。

如果想要设置前景色为透明,直接调用一下FillFormat对象的background()方法即可,但是要注意,一旦调用了background()之后再访问fore_color就会报错,因为已经没有前景色了。


该分类下的相关小册推荐: