【问题标题】:text color in python-pptx modulepython-pptx模块中的文本颜色
【发布时间】:2014-09-03 22:20:08
【问题描述】:

我想给一个句子上色,用不同的颜色 - 比如,前半部分用红色,其余部分用蓝色。

到目前为止我的代码是这样的

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import ColorFormat, RGBColor
from pptx.enum.dml import MSO_COLOR_TYPE, MSO_THEME_COLOR
import codecs


prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)


text_file = open("content.txt", "r")
# read the lyrics file
lines = text_file.readlines()

# page title
title = slide.shapes.title

# text frame in the page
tf = title.textframe

# paragrap in the text frame
p = tf.add_paragraph()
# write the first sentence 
#p.text = unicode(lines[0], encoding='utf-8')
p.text = "hello is red the rest is blue"
p.font.bold = True
p.font.color.rgb = RGBColor(255, 0, 0)

prs.save('test.pptx')
text_file.close()

在我的代码中,整个句子都是红色的;我想知道如何将不同的词用不同的颜色表示 - 再说一遍,前半部分是红色,其余部分是蓝色。

【问题讨论】:

    标签: python powerpoint


    【解决方案1】:

    将它们添加为单独的运行,如下所示:

    from pptx.dml.color import RGBColor
    from pptx.enum.dml import MSO_THEME_COLOR
    from pptx.util import Pt
    
    p = tf.add_paragraph()
    run = p.add_run()
    run.text = 'hello'
    font = run.font
    font.name = 'Calibri'
    font.size = Pt(18)
    font.bold = True
    font.color.theme_color = MSO_THEME_COLOR.ACCENT_1
    
    run = p.add_run()
    run.text = ' is red and the rest is blue'
    run.font.color.rgb = RGBColor(0, 0, 255)
    

    运行是一个字符序列,它们都共享相同的字符格式。要更改段落中的字符格式,必须使用多次运行。

    【讨论】:

    【解决方案2】:

    有更简单的方法来改变字体:

     run.text.text_frame._set_font(font,size,bold,italic)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-15
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多