2016-05-16 123 views
1

我嘗試啓用自動導入圖片,以防止每次手動廣告100張圖片。我似乎無法訪問圖片的佔位符並用新圖片替換它們。 一些正確的方向指導將有很大的幫助。python-pptx在佈局中更改圖片

代碼我開始:

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

slide layout

回答

0

首先,你要分析現有的佈局,在你的模板(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上編輯您的演示文稿大師來了解和設計您的佈局,但是您必須猜測這些idxs。

一旦您知道哪個佈局中有圖片佔位符,您可以選擇這種佈局以使用圖像創建新幻燈片。

類似的東西:

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