简体   繁体   English

python-pptx模块中的文本颜色

[英]text color in python-pptx module

I would like to color a sentence, in different color - say, the first half in red and rest in blue. 我想用不同颜色的句子上色 - 比如,前半部分用红色,用蓝色休息。

my code so far is like 到目前为止,我的代码就像

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()

in my code, the entire sentence is red; 在我的代码中,整个句子都是红色的; I would like to know how can I address different words to different color - again, say first half red the rest in blue. 我想知道如何处理不同颜色的不同颜色 - 再说,前半部分用蓝色表示红色。

Add them as separate runs like so: 将它们添加为单独运行,如下所示:

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)

A run is a sequence of characters all sharing the same character formatting. 运行是一系列共享相同字符格式的字符。 To change character formatting within a paragraph, multiple runs must be used. 要更改段落中的字符格式,必须使用多次运行。

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM