簡體   English   中英

如何更改python pptx對象的字體大小

[英]How to change the font size of an python pptx object

我想更改 pptx 演示文稿的標題和正文的字體大小。 我試圖通過title_shape.font = Pt(15)body_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屬性(至少在您通過分配給該名稱添加一個屬性之前它沒有:)

FontRun對象的特征; 一個 run 是一個字符序列,它們都共享相同的字符格式,也松散地稱為font

Paragraph對象有一個.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)

有關此內容的更多詳細信息,請參見此處的文檔:
https://python-pptx.readthedocs.io/en/latest/user/text.html

這是一個對我有用的簡單方法:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM