在现有占位符中插入和格式化文本
Inserting and formatting text in existing placeholder
我有一个包含文本占位符的幻灯片模板。如何在该特定文本占位符中插入文本并设置文本格式?
text_ph1 = slide1.placeholders[14]
text_ph2 = slide1.placeholders[15]
para1 = ['Text for para 1']
para2 = ['Text for para 2']
p = text_ph1.paragraphs[0]
run = p.add_run()
run.text = para1[0]
font = run.font
font.name = 'Calibri'
font.size = Pt(14)
font.bold = False
font.italic = None
AttributeError Traceback (most recent call last)
<ipython-input-205-ce3eb19a0d8b> in <module>
2 text_frame.clear() # not necessary for newly-created shape
3
----> 4 p = text_ph1.paragraphs[0]
5 run = p.add_run()
6 run.text = para1[0]
AttributeError: 'SlidePlaceholder' object has no attribute 'paragraphs'
希望我理解你的问题。
示例:
from pptx import Presentation
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Text for para 1"
subtitle.text = "Text for para 2"
prs.save('test.pptx')
占位符是一种形状,大部分与任何其他自动形状(矩形、文本框、圆形等)一样。
要访问形状的文本,请使用其 .text_frame
属性 检索其 TextFrame
对象。 TextFrame
对象有段落(不是直接的形状)所以这样的事情应该有效:
text_ph1 = slide1.placeholders[14]
text_ph1.text_frame.text = "Text for para 1"
如果您随后想要格式化您添加的文本,您可以在第一段的第一个 运行 中找到它:
font = text_ph1.text_frame.paragraphs[0].runs[0].font
font.name = 'Calibri'
font.size = Pt(14)
font.bold = False
font.italic = False
我有一个包含文本占位符的幻灯片模板。如何在该特定文本占位符中插入文本并设置文本格式?
text_ph1 = slide1.placeholders[14]
text_ph2 = slide1.placeholders[15]
para1 = ['Text for para 1']
para2 = ['Text for para 2']
p = text_ph1.paragraphs[0]
run = p.add_run()
run.text = para1[0]
font = run.font
font.name = 'Calibri'
font.size = Pt(14)
font.bold = False
font.italic = None
AttributeError Traceback (most recent call last)
<ipython-input-205-ce3eb19a0d8b> in <module>
2 text_frame.clear() # not necessary for newly-created shape
3
----> 4 p = text_ph1.paragraphs[0]
5 run = p.add_run()
6 run.text = para1[0]
AttributeError: 'SlidePlaceholder' object has no attribute 'paragraphs'
希望我理解你的问题。
示例:
from pptx import Presentation
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Text for para 1"
subtitle.text = "Text for para 2"
prs.save('test.pptx')
占位符是一种形状,大部分与任何其他自动形状(矩形、文本框、圆形等)一样。
要访问形状的文本,请使用其 .text_frame
属性 检索其 TextFrame
对象。 TextFrame
对象有段落(不是直接的形状)所以这样的事情应该有效:
text_ph1 = slide1.placeholders[14]
text_ph1.text_frame.text = "Text for para 1"
如果您随后想要格式化您添加的文本,您可以在第一段的第一个 运行 中找到它:
font = text_ph1.text_frame.paragraphs[0].runs[0].font
font.name = 'Calibri'
font.size = Pt(14)
font.bold = False
font.italic = False