Python自動(dòng)化辦公之PPT段落的使用
上一章節(jié)我們學(xué)習(xí)了基礎(chǔ)的定義 PPT 的方法以及每一頁(yè)中的樣式,這節(jié)課我們將真正的在 PPT 中添加內(nèi)容,學(xué)習(xí)一下 pptx 的段落的使用。
PPT 段落的使用
開啟本節(jié)課的學(xué)習(xí),卷!
獲取段落
既然是獲取段落,就說(shuō)明了是存在的段落,一開始就存在了某種樣式之中。
第一步:定義 ppt 對(duì)象
ppt = Presentation() 通過(guò) Presentation() 實(shí)例化一個(gè) ppt 對(duì)象(Presentation 可以通過(guò) python-pptx 直接拿過(guò)來(lái)使用)
第二步:選擇樣式
layout = ppt.slide_layout[1] 這里選擇了樣式1 ,樣式1包含了一個(gè) title 和一個(gè)段落
第三步:演示插入PPT,生成一頁(yè)P(yáng)PT
slide = ppt.slides.add_slide(layout) 通過(guò) slides.add_slide(layput) 函數(shù)將 layout 傳入,就生成一頁(yè)P(yáng)PT了
第四步:獲取段落
placeholder = slide.placeholder[1] 通過(guò) placeholder() 函數(shù) 獲取當(dāng)前PPT中的段落(因?yàn)槲覀冞x擇的樣式1有兩個(gè)小段落內(nèi)容,1個(gè)代表 title ,一個(gè)代表內(nèi)容。所以我們真正獲取內(nèi)容的段落就是 placeholder[1],返回一個(gè) placeholder 對(duì)象,這個(gè) placeholder 對(duì)象 就是段落。)
段落添加內(nèi)容
placeholder.text = new content 通過(guò) placeholder 對(duì)象的 text 方法 輸入一些字符串,即可生成段落的內(nèi)容。
代碼示例如下:
# coding:utf-8 import pptx ppt = pptx.Presentation() # 生成ppt對(duì)象 layout = ppt.slide_layouts[1] # 選擇布局 1 slide = ppt.slides.add_slide(layout) title = slide.placeholders[0] # 獲取title placeholder = slide.placeholders[1] # 獲取內(nèi)容 title.text = "這是title" placeholder.text = "這是第一行段落內(nèi)容\n這是第二行段落內(nèi)容" ppt.save("test2.ppt")
運(yùn)行結(jié)果如下:
段落中定義多個(gè)段落
如果想要段落中每一行內(nèi)容都擁有自己的樣式就需要在段落中每一行各自的內(nèi)容定義各自的新段落,這樣就可以進(jìn)行每一行的自我控制了。接下來(lái)看一看如何在段落中定義多個(gè)段落:
paragraph = placeholder.text_frame.add_paragraph() # 通過(guò) placeholder.text_frame.add_paragraph() 可以生成一個(gè)新的段落對(duì)象?
通過(guò)該方式生成的段落對(duì)象,可以實(shí)現(xiàn)以下功能:
函數(shù)名 | 說(shuō)明 |
---|---|
text | 定義內(nèi)容 |
font.bold | 文字加粗 |
font.italic | 文字斜體 |
font.size | 字體大小 |
alignment | 段落位置 |
color.rgb | 字體顏色 |
font.underline | 文字下劃線 |
代碼示例如下:
# coding:utf-8 import pptx from pptx.util import Pt from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT ppt = pptx.Presentation() # 生成ppt對(duì)象 layout = ppt.slide_layouts[1] # 選擇布局 1 slide = ppt.slides.add_slide(layout) title = slide.placeholders[0] # 獲取title placeholder = slide.placeholders[1] # 獲取內(nèi)容 title.text = "這是title" # placeholder.text = "這是第一行段落內(nèi)容\n這是第二行段落內(nèi)容" paragraph1 = placeholder.text_frame.add_paragraph() # 定義第一個(gè)段落的樣式 paragraph1.text = '歡迎學(xué)習(xí)ppt制作' # 第一個(gè)樣式段落的內(nèi)容為 "歡迎學(xué)習(xí)ppt制作" paragraph1.font.bold = True # 第一個(gè)樣式段落的字體為粗體 paragraph1.font.italic = True # 第一個(gè)樣式段落的字體為斜體 paragraph1.font.size = Pt(16) # 第一個(gè)樣式段落的字體大小為 16 ;需要 from pptx.util import Pt paragraph1.font.underline = True # 第一個(gè)樣式段落的字體有下劃線 paragraph1.alignment = PP_PARAGRAPH_ALIGNMENT.CENTER # 居中;需 from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT paragraph2 = placeholder.text_frame.add_paragraph() # 定義第二個(gè)段落的樣式 paragraph2.text = '歡迎學(xué)習(xí)python' # 第二個(gè)樣式段落的內(nèi)容為 "歡迎學(xué)習(xí)python" paragraph2.font.size = Pt(32) # 第二個(gè)樣式段落的字體大小為 32 paragraph2.alignment = PP_PARAGRAPH_ALIGNMENT.RIGHT # 居右 ppt.save("test2.ppt")
運(yùn)行結(jié)果如下:
自定義段落
接下來(lái)有個(gè)問(wèn)題,上文中定義的段落都是在已存在的布局中去完成的。如果在當(dāng)前 PPT 頁(yè)面中沒有基礎(chǔ)段落,我們又該怎么樣去寫入段落呢?答案就是接下來(lái)要講的內(nèi)容了。
我們可以自定義一個(gè)段落,或者說(shuō)自定義一個(gè)文本輸入框出來(lái)即可。接下來(lái)看看如何自定義一個(gè)段落:
box = slide.shapes.add_textbox(left, top, width, height)
通過(guò) slide.shapes.add_textbox() 定義一個(gè) box 對(duì)象。
left:居左的位置;top:居上的位置;width:當(dāng)前段落的寬度;height:當(dāng)前段落的高度。
left 與 top 結(jié)合選擇的是選擇當(dāng)前段落所居的目標(biāo)點(diǎn);width 與 height 結(jié)合則是定義當(dāng)前段落的寬高度。
完成這部操作會(huì)返回一個(gè) box 對(duì)象
paragraph = box.text_frame.add_paragraph()
通過(guò) box 對(duì)象的 text_frame.add_paragraph() 生成一個(gè)段落對(duì)象。
接下來(lái)就可以按照段落對(duì)象的方式去寫入內(nèi)容了。
所使用到的新的模塊:
- from pptx.util import Inches, Pt 這里的 Inches 模塊就是作為 shapes.add_textbox(left, top, width, height) 方法里 left, top, width, height 的函數(shù)使用。
- from pptx.dml.color import RGBColor 對(duì)應(yīng)顏色樣式
- from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT 對(duì)段落位移的定義
?代碼示例如下:
# coding:utf-8 import pptx from pptx.util import Pt, Inches from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT from pptx.dml.color import RGBColor ppt = pptx.Presentation() # 生成ppt對(duì)象 layout = ppt.slide_layouts[1] # 選擇布局 1 slide = ppt.slides.add_slide(layout) title = slide.placeholders[0] # 獲取title placeholder = slide.placeholders[1] # 獲取內(nèi)容 title.text = "這是title" # placeholder.text = "這是第一行段落內(nèi)容\n這是第二行段落內(nèi)容" paragraph1 = placeholder.text_frame.add_paragraph() # 定義第一個(gè)段落的樣式 paragraph1.text = '歡迎學(xué)習(xí)ppt制作' # 第一個(gè)樣式段落的內(nèi)容為 "歡迎學(xué)習(xí)ppt制作" paragraph1.bold = True # 第一個(gè)樣式段落的字體為粗體 paragraph1.font.italic = True # 第一個(gè)樣式段落的字體為斜體 paragraph1.font.size = Pt(16) # 第一個(gè)樣式段落的字體大小為 16 ;需要 from pptx.util import Pt paragraph1.font.underline = True # 第一個(gè)樣式段落的字體有下劃線 paragraph1.alignment = PP_PARAGRAPH_ALIGNMENT.CENTER # 居中;需 from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT paragraph2 = placeholder.text_frame.add_paragraph() # 定義第二個(gè)段落的樣式 paragraph2.text = '歡迎學(xué)習(xí)python' # 第二個(gè)樣式段落的內(nèi)容為 "歡迎學(xué)習(xí)python" paragraph2.font.size = Pt(32) # 第二個(gè)樣式段落的字體大小為 32 paragraph2.alignment = PP_PARAGRAPH_ALIGNMENT.RIGHT # 居右 layout = ppt.slide_layouts[6] # 定義布局,使用樣式 6 (樣式6 只有一個(gè)title) slide = ppt.slides.add_slide(layout) left = top = width = height = Inches(5) # 定義 box 對(duì)象的位置與寬高 box = slide.shapes.add_textbox(left, top, width, height) # 實(shí)例化一個(gè) box 對(duì)象 para = box.text_frame.add_paragraph() # 定義一個(gè)段落對(duì)象 para.text = 'this is a para test' # 自定義段落對(duì)象寫入段落內(nèi)容 para.alignment = PP_PARAGRAPH_ALIGNMENT.CENTER # 居中 para.font.size = Pt(38) # 設(shè)置字體大小 para.font.color.rgb = RGBColor(255, 0, 0) # 設(shè)置顏色 para.font.name = '微軟雅黑' # 設(shè)置字體 ppt.save("test2.ppt")
運(yùn)行結(jié)果如下:
到此這篇關(guān)于Python自動(dòng)化辦公之PPT段落的使用的文章就介紹到這了,更多相關(guān)Python PPT段落內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV圖像縮放resize各種插值方式的比較實(shí)現(xiàn)
OpenCV提供了resize函數(shù)來(lái)改變圖像的大小,本文主要介紹了OpenCV圖像縮放resize各種插值方式的比較實(shí)現(xiàn),分享給大家,感興趣的可以了解一下2021-06-06Python解析網(wǎng)頁(yè)源代碼中的115網(wǎng)盤鏈接實(shí)例
這篇文章主要介紹了Python解析網(wǎng)頁(yè)源代碼中的115網(wǎng)盤鏈接實(shí)例,主要采用了正則表達(dá)式re模塊來(lái)實(shí)現(xiàn)該功能,需要的朋友可以參考下2014-09-09Python Joblib庫(kù)使用方法案例總結(jié)
Python Joblib庫(kù)是一個(gè)用于并行計(jì)算和數(shù)據(jù)預(yù)處理的工具庫(kù)。它可以幫助用戶快速處理大量數(shù)據(jù),提高計(jì)算效率。其中,最常用的功能是并行計(jì)算,可以使用多個(gè)CPU核心同時(shí)處理任務(wù),大大縮短計(jì)算時(shí)間。此外,Joblib還提供了一些數(shù)據(jù)預(yù)處理的功能,可以幫助用戶更好地處理數(shù)據(jù)2023-06-06Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試完整示例
這篇文章主要介紹了Python實(shí)現(xiàn)的HTTP并發(fā)測(cè)試,涉及Python多線程并發(fā)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-05-05淺談keras使用預(yù)訓(xùn)練模型vgg16分類,損失和準(zhǔn)確度不變
這篇文章主要介紹了淺談keras使用預(yù)訓(xùn)練模型vgg16分類,損失和準(zhǔn)確度不變,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編小編過(guò)來(lái)看看吧2020-07-07Python語(yǔ)法學(xué)習(xí)之進(jìn)程的創(chuàng)建與常用方法詳解
本文我們將學(xué)習(xí)一下在?Python?中去創(chuàng)建并使用多進(jìn)程的方法,可以通過(guò)創(chuàng)建多個(gè)進(jìn)程來(lái)幫助我們提高腳本執(zhí)行的效率,感興趣的可以了解一下2022-04-04