相关疑难解决方法(0)

是否可以使用 python-pptx 组合两个或多个幻灯片?

我正在尝试合并幻灯片,但我不知道该怎么做。我发现了一个看起来很有前途的 python moduel pptx。我尝试将幻灯片内容从 2 个幻灯片复制到一个新的幻灯片。但我遇到了很多问题,比如如何获取现有的幻灯片布局或形状(所有形状,包括图片、自动形状等)的高度、宽度、位置。我查看了Python-pptx上的python-pptx示例:复制幻灯片。我尝试做类似的事情,但这不起作用。

这是我的代码:

from pptx import Presentation

prs1 = Presentation("C:/Users/number/Documents/Test1.pptx")
prs2 = Presentation("C:/Users/number/Documents/Test2.pptx")

slidelst = []
for layout in prs2.slide_layouts:
    slidelst.append(prs1.slides.add_slide(layout))

index = 0
for slide in slidelst:
    for shape in prs2.slides[prs2.slides.index(slide)].shapes:
        slide.shapes._spTree.insert_element_before(shape.element, 'p:extLst')
    index+=1

prs1.save("C:/Users/I505168/Documents/newpresentation.pptx")
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Traceback (most recent call last):
  File "C:\Users\I505168\Desktop\testpptx.py", line 12, in <module>
    for shape in prs2.slides[prs2.slides.index(slide)].shapes:
  File "C:\Users\I505168\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pptx\slide.py", line 315, in index
    raise ValueError("%s is not in slide collection" % slide)
ValueError: <pptx.slide.Slide object at 0x03B53A50> is not …
Run Code Online (Sandbox Code Playgroud)

python python-pptx

5
推荐指数
1
解决办法
7879
查看次数

如何使用 python pptx 复制带有图像的幻灯片?

我的最终目标是改变演示文稿的主题。为此,我创建了一个源模板和一个新模板(具有正确的主题)。我迭代源模板中的每张幻灯片,然后使用/sf/answers/3925225601/中的代码将包含源内容的新幻灯片添加到新模板中。如果有更好的方法来做到这一点,我很想听听。

这对于文本和文本框非常有用,但是测试图像无法在新的 powerpoint 中显示(如下图所示):

在此输入图像描述

代码

def copy_slide_from_external_prs(self, src, idx, newPrs):

    # specify the slide you want to copy the contents from
    src_slide = src.slides[idx]

    # Define the layout you want to use from your generated pptx
    slide_layout = newPrs.slide_layouts[2]

    # create now slide, to copy contents to
    curr_slide = newPrs.slides.add_slide(slide_layout)


    # remove placeholders
    for p in [s.element for s in curr_slide.shapes if 'Text Placeholder' in s.name or 'Title' in s.name]:
        p.getparent().remove(p)

    # now copy contents from external slide, …
Run Code Online (Sandbox Code Playgroud)

python python-pptx

5
推荐指数
1
解决办法
4090
查看次数

标签 统计

python ×2

python-pptx ×2