4

毎回何百枚もの写真を手動で広告するのを防ぐために、写真の自動インポートを有効にしようとしています。写真のプレースホルダーにアクセスして新しい写真に置き換えることができないようです。正しい方向へのガイドは非常に役立ちます。

私が始めるコード:

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

スライド レイアウト

4

1 に答える 1

1

まず、テンプレートで利用可能なレイアウトを分析する必要があります (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 を推測する必要があります。

どのレイアウトに画像プレースホルダーが含まれているかがわかったら、この種類のレイアウトを選択して、画像を含む新しいスライドを作成できます。

そんな感じ:

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

于 2017-07-18T10:04:11.993 に答える