ppt制作工具python-pptx 快速入門

hello

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
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 = "Hello, World!"
subtitle.text = "python-pptx 可以輕松制作powerpoint!"

prs.save('test.pptx')
圖片.png

Bullet

from pptx import Presentation

prs = Presentation()
bullet_slide_layout = prs.slide_layouts[1]

slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes

title_shape = shapes.title
body_shape = shapes.placeholders[1]

title_shape.text = 'Adding a Bullet Slide'

tf = body_shape.text_frame
tf.text = 'Find the bullet slide layout'

p = tf.add_paragraph()
p.text = 'Use _TextFrame.text for first bullet'
p.level = 1

p = tf.add_paragraph()
p.text = 'Use _TextFrame.add_paragraph() for subsequent bullets'
p.level = 2

prs.save('test.pptx')
圖片.png

并非所有shape都可以包含文本,但至少有段落则北。 _BaseShape.has_text_frame可用于確定shape是否可以包含文本,所有shape都是_BaseShape的子類 痕慢。當(dāng)_BaseShape.has_text_frame為True 時尚揣,_BaseShape.text_frame.paragraphs[0]返回第一段。 可以使用text_frame.paragraphs[0].text設(shè)置文本掖举。 _BaseShape.text和_TextFrame.text可以達(dá)到同樣的效果快骗。

from pptx import Presentation

prs = Presentation()
bullet_slide_layout = prs.slide_layouts[1]

slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes

title_shape = shapes.title
body_shape = shapes.placeholders[1]

title_shape.text = 'Adding a Bullet Slide'

tf = body_shape.text_frame
tf.text = 'Find the bullet slide layout'

p = tf.add_paragraph()
p.text = 'Use _TextFrame.text for first bullet'
p.level = 1

p = tf.add_paragraph()
p.text = 'Use _TextFrame.add_paragraph() for subsequent bullets'
p.level = 2

prs.save('test.pptx')

參考資料

字體

from pptx import Presentation
from pptx.util import Inches, Pt

prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)

left = top = width = height = Inches(1)
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame

tf.text = "This is text inside a textbox"

p = tf.add_paragraph()
p.text = "This is a second paragraph that's bold"
p.font.bold = True

p = tf.add_paragraph()
p.text = "This is a third paragraph that's big"
p.font.size = Pt(40)

prs.save('test.pptx')
圖片.png

圖片

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pptx import Presentation
from pptx.util import Inches

img_path = 'test.jpg'

prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)

left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)

left = Inches(5)
height = Inches(5.5)
pic = slide.shapes.add_picture(img_path, left, top, height=height)

prs.save('test.pptx')
圖片.png

Autoshape

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Inches

prs = Presentation()
title_only_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes

shapes.title.text = 'Adding an AutoShape'

left = Inches(0.93)  # 0.93" centers this overall set of shapes
top = Inches(3.0)
width = Inches(1.75)
height = Inches(1.0)

shape = shapes.add_shape(MSO_SHAPE.PENTAGON, left, top, width, height)
shape.text = 'Step 1'

left = left + width - Inches(0.4)
width = Inches(2.0)  # chevrons need more width for visual balance

for n in range(2, 6):
    shape = shapes.add_shape(MSO_SHAPE.CHEVRON, left, top, width, height)
    shape.text = 'Step %d' % n
    left = left + width - Inches(0.4)

prs.save('test.pptx')
圖片.png

表格

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
title_only_slide_layout = prs.slide_layouts[5]
slide = prs.slides.add_slide(title_only_slide_layout)
shapes = slide.shapes

shapes.title.text = 'Adding a Table'

rows = cols = 2
left = top = Inches(2.0)
width = Inches(6.0)
height = Inches(0.8)

table = shapes.add_table(rows, cols, left, top, width, height).table

# set column widths
table.columns[0].width = Inches(2.0)
table.columns[1].width = Inches(4.0)

# write column headings
table.cell(0, 0).text = 'Foo'
table.cell(0, 1).text = 'Bar'

# write body cells
table.cell(1, 0).text = 'Baz'
table.cell(1, 1).text = 'Qux'

prs.save('test.pptx')
圖片.png

提取文本

from pptx import Presentation

prs = Presentation(path_to_presentation)

# text_runs will be populated with a list of strings,
# one for each text run in presentation
text_runs = []

for slide in prs.slides:
    for shape in slide.shapes:
        if not shape.has_text_frame:
            continue
        for paragraph in shape.text_frame.paragraphs:
            for run in paragraph.runs:
                text_runs.append(run.text)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塔次,一起剝皮案震驚了整個濱河市方篮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌励负,老刑警劉巖藕溅,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異继榆,居然都是意外死亡巾表,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門略吨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來集币,“玉大人,你說我怎么就攤上這事翠忠【瞎叮” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偶妖。 經(jīng)常有香客問我,道長政溃,這世上最難降的妖魔是什么趾访? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮董虱,結(jié)果婚禮上扼鞋,老公的妹妹穿的比我還像新娘。我一直安慰自己愤诱,他們只是感情好云头,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淫半,像睡著了一般溃槐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上科吭,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天昏滴,我揣著相機(jī)與錄音,去河邊找鬼对人。 笑死谣殊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牺弄。 我是一名探鬼主播姻几,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼势告!你這毒婦竟也來了蛇捌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤培慌,失蹤者是張志新(化名)和其女友劉穎豁陆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吵护,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡盒音,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馅而。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祥诽。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瓮恭,靈堂內(nèi)的尸體忽然破棺而出雄坪,到底是詐尸還是另有隱情,我是刑警寧澤屯蹦,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布维哈,位于F島的核電站绳姨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阔挠。R本人自食惡果不足惜飘庄,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望购撼。 院中可真熱鬧跪削,春花似錦、人聲如沸迂求。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揩局。三九已至毫玖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凌盯,已是汗流浹背孕豹。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留十气,地道東北人励背。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像砸西,于是被迫代替她去往敵國和親叶眉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第五十六章5 高低貴賤芹枷,浮云一片 不可得而貴衅疙,亦不可得而賤。故為天下貴鸳慈。 無法使他高貴饱溢,也無法使他低賤。修道之人能...
    錦洋爸爸閱讀 872評論 0 0
  • 那些花兒 看完一場畢業(yè)晚會 無限感慨 時間慢慢走著走著 終有一天 也將把我們 穿著畢業(yè)裝 燦爛而憂傷的 定格在相框...
    十月十二閱讀 188評論 0 0
  • 1走芋,從本篇文章中我學(xué)到的最重要的概念 被人推薦了一部電影绩郎,叫做《了不起的蓋茨比》,電影抨擊了人性的虛偽翁逞,與美國的金...
    任竟男閱讀 151評論 2 0