python-pptx模块中的文本颜色 [英] text color in python-pptx module

查看:120
本文介绍了python-pptx模块中的文本颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用不同的颜色为句子着色 - 比如,前半部分为红色,其余部分为蓝色.

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)

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

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.

这篇关于python-pptx模块中的文本颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆