如何复制幻灯片?

我创建了一个模板幻灯片,我需要复制它并分别编辑每个副本的形状。

或者如何将我的模板幻灯片添加到presentation.slide_layouts?

最佳答案

这是我在 GitHub 上找到的,它对我有用。我确实为我的项目更改了一些东西。您将需要导入六个并复制。我正在使用 pptx-6.10

def duplicate_slide(pres, index):
    template = pres.slides[index]
    try:
        blank_slide_layout = pres.slide_layouts[12]
    except:
        blank_slide_layout = pres.slide_layouts[len(pres.slide_layouts)]

    copied_slide = pres.slides.add_slide(blank_slide_layout)

    for shp in template.shapes:
        el = shp.element
        newel = copy.deepcopy(el)
        copied_slide.shapes._spTree.insert_element_before(newel, 'p:extLst')

    for _, value in six.iteritems(template.part.rels):
        # Make sure we don't copy a notesSlide relation as that won't exist
        if "notesSlide" not in value.reltype:
            copied_slide.part.rels.add_relationship(
                value.reltype,
                value._target,
                value.rId
            )

    return copied_slide

然后,您可以通过传入演示文稿和模板的幻灯片索引来创建副本:
copied_slide = duplicate_slide(pres, 4)

我仍在编辑复制的幻灯片中的形状,一旦我在我的项目中进一步发展,我就可以更新

10-08 02:31