[英]python-pptx change picture in layout
我嘗試啟用自動導入圖片的功能,以防止每次手動添加100張圖片。 我似乎無法訪問圖片的占位符,並用新圖片替換它們。 一些正確方向的指南會很有幫助。
我開始的代碼:
import pptx
import pptx.util
from pptx import Presentation
prs = Presentation('prepare_2.pptx')
picture_runs = []
for slide in prs.slides:
for shape in slide.shapes:
if shape.shape_type == 13:
slide.get.image('tree.jpg')
>Picture_runs.append((shape.name,shape.shape_type,shape.id,shape.image))
找到我獲得的信息: http : //python-pptx.readthedocs.io/en/latest/user/quickstart.html
首先,您必須分析模板中可用的布局(本例中為prepare_2.pptx
)。
要做到這一點,就像編寫一個腳本一樣容易,它可以獲取演示文稿中的所有布局並列出所有形狀和占位符。 像這樣:
prs = Presentation('template.pptx')
for idx, slide_layout in enumerate(prs.slide_layouts):
slide = prs.add_slide(slide_layout)
for shape in slide.placeholders:
print idx, shape.placeholder_format.idx, shape.name
如果按原樣使用此腳本,則在shape不是占位符的情況下,可能必須管理異常。 您還可以通過在Powerpoint上編輯演示文稿母版來了解和設計布局,但是您將不得不猜測idx。
一旦知道其中有圖片占位符的布局,就可以選擇這種布局來創建帶有Image的新幻燈片。
像這樣:
slide = prs.slides.add_slide(THE_IDX_OF_YOUR_LAYOUT_WITH_PICTURE)
placeholder = slide.placeholders[THE_IDX_OF_YOUR_PICTURE_PLACEHOLDER]
placeholder.insert_picture(picture)
我建議您閱讀有關此的絕對出色的文章: http : //pbpython.com/creating-powerpoint.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.