【问题标题】:how to add two or more images to the same slide in for loop python-pptx如何在for循环python-pptx中将两个或多个图像添加到同一张幻灯片
【发布时间】:2020-01-30 01:16:29
【问题描述】:

我正在尝试使用 python pptx 包将图像添加到一张幻灯片中。

How to add two images to one slide in python pptx

但是当我在 for 循环中执行此操作时遇到困难;

假设我们在目录中有一堆图片,我们想要调整当前幻灯片的大小并添加当前幻灯片以及目录中的图片。当我在目录中有eaglehawk 时,调整它们的大小和位置并将它们放入当前幻灯片并移动下一张!

我得到的是不同幻灯片中的每张图片;

这是我的代码样子;

from pptx import Presentation
from pptx.util import Inches
from pptx.util import Inches

img_path = 'r/D/test'

eagle_1.png, eagle_2.png .... eagle_5.png

hawk_1.png, hawk_2.png .... hawk_5.png


def ppt_generator(img_path):

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

    for images in glob.glob(img_path + '/*.png'):


        if 'eagle' in str(images):
            slide = prs.slides.add_slide(content_slide_layout)   
            slide = slide.shapes.add_picture(images , left=Inches(0), top=Inches(0), width=Inches(3), height = Inches(3))

        if 'hawk' in str(images):
            slide = prs.slides.add_slide(content_slide_layout)   
            slide = slide.shapes.add_picture(images , left=Inches(2), top=Inches(2), width=Inches(3), height = Inches(3))

    prs.save('eagle_hawk.pptx') 

我想要的是每个 eagle_1 和 hawk_1 应该在同一张幻灯片中,依此类推!

我该怎么做?

【问题讨论】:

    标签: python for-loop if-statement powerpoint python-pptx


    【解决方案1】:

    一种方法是在单独的函数中组装鹰/鹰图片对。可能是这样的:

    def iter_image_pairs():
        eagles, hawks = [], []
        for image_path in glob.glob(img_path + '/*.png'):
            if "eagle" in image_path:
                eagles.append(image_path)
            elif "hawk" in image_path:
                hawks.append(image_path)
        for pair in zip(eagles, hawks):
            yield pair
    

    那么你的幻灯片循环就可以变成:

    for eagle, hawk in iter_image_pairs():
        slide = prs.slides.add_slide(content_slide_layout)   
        slide.shapes.add_picture(
            eagle, left=Inches(0), top=Inches(0), width=Inches(3), height=Inches(3)
        )
        slide.shapes.add_picture(
            hawk, left=Inches(2), top=Inches(2), width=Inches(3), height=Inches(3)
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多