python-pptx模块中的文本颜色
我想给一句话上色,想把前半部分涂成红色,后半部分涂成蓝色。
我目前的代码是这样的:
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()
在我的代码里,整句话都是红色的;我想知道怎么才能让不同的词用不同的颜色——比如前半部分是红色,后半部分是蓝色。
2 个回答
-3
有更简单的方法来改变字体:
run.text.text_frame._set_font(font,size,bold,italic)
18
把它们作为单独的部分添加,像这样:
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)
一个“run”就是一串字符,它们都有相同的格式。要在一段文字中改变字符的格式,就需要使用多个“run”。