如何更改python pptx对象的字体大小

如何更改python pptx对象的字体大小,python,python-pptx,Python,Python Pptx,我想更改pptx演示文稿标题和正文的字体大小。我试图通过title\u-shape.font=Pt(15)和body\u-shape.font=Pt(10)进行设置,但设置无效 这是我的密码: from pptx import Presentation, util, text from pptx.util import Cm, Pt import fnmatch import os import contentOf_pptx as contOfPres # .............. #

我想更改pptx演示文稿标题和正文的字体大小。我试图通过
title\u-shape.font=Pt(15)
body\u-shape.font=Pt(10)
进行设置,但设置无效

这是我的密码:

from pptx import Presentation, util, text
from pptx.util import Cm, Pt
import fnmatch
import os

import contentOf_pptx as contOfPres


# ..............
# Generate presentation
# ..............
prs = Presentation()
#blank_slide_layout = prs.slide_layouts[6] #blank layout, see slide layout in powerpoint
title_only = prs.slide_layouts[5] #title only, see slide layout in powerpoint 



# ..............
# set layout
# ..............
bullet_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes

title_shape = shapes.title
title_shape.font = Pt(15)

body_shape = shapes.placeholders[1]
body_shape.font = Pt(10)

# ..............
# set relevant text objects
# ..............
title_shape.text = 'Test Title'

tf = body_shape.text_frame
tf.text = 'Test SubText'


# ----------------------------------
# Store pptx
# ----------------------------------
prs.save('C:\\tests\\test_pptx_python.pptx')

Shape
对象没有
.font
属性(至少在您通过指定给该名称添加一个属性之前没有:)

Font
Run
对象的特征;运行是所有字符共享相同字符格式的字符序列,也称为字体

段落
对象还有一个
.font
属性,该属性的使用方式相同,但它指定段落中运行的默认字体。该段落中的各个段落可以通过设置其自身字体对象的属性来覆盖该默认值

如果形状只需要一种字体(这是常见的),最快的方法可能是:

shape.text_frame.paragraphs[0].font.size = Pt(15)
这是因为大多数形状只包含一个段落(并且所有形状都必须至少包含一个段落)

更彻底的是:

for paragraph in shape.text_frame.paragraphs:
    paragraph.font.size = Pt(15)
for paragraph in shape.text_frame.paragraphs:
    for run in paragraph.runs:
        run.font.size = Pt(15)
更彻底的是:

for paragraph in shape.text_frame.paragraphs:
    paragraph.font.size = Pt(15)
for paragraph in shape.text_frame.paragraphs:
    for run in paragraph.runs:
        run.font.size = Pt(15)
有关这方面的更多详细信息,请参阅此处的文档:

以下是一个对我有效的简单方法:

slide = prs.slides.add_slide(blank_slide_layout)
slide.shapes.title.text = "The Title of My Slide"
slide.shapes.title.text_frame.paragraphs[0].font.size = Pt(15)

在插入幻灯片.text\u frame.parations[0].font.size=Pt(15)到我的代码时,我试图应用您的提示,但出现了一个属性错误。我在你的链接()中发布了一条if语句,并尝试了它,因此是这样的:
if shapes.has\u text\u frame:
。不幸的是,也出现了属性错误。如果它对你来说是好的,你能发布整个代码吗。