Python 从旧幻灯片布局生成新幻灯片布局

Python 从旧幻灯片布局生成新幻灯片布局,python,powerpoint,python-pptx,Python,Powerpoint,Python Pptx,我想生成一张新幻灯片,使用与旧幻灯片相同的布局,但新幻灯片的内容相同 幻灯片1 幻灯片2 我需要幻灯片2将其设计更改为幻灯片1的设计,同时保留txt内容。我用下面的代码复制了精确的幻灯片,但它并不完美,覆盖了所有内容 def copy_external(external, new): # copy from external presentation all objects into the existing presentation external_pres = exter

我想生成一张新幻灯片,使用与旧幻灯片相同的布局,但新幻灯片的内容相同

幻灯片1 幻灯片2

我需要幻灯片2将其设计更改为幻灯片1的设计,同时保留txt内容。我用下面的代码复制了精确的幻灯片,但它并不完美,覆盖了所有内容

def copy_external(external, new):

    # copy from external presentation all objects into the existing presentation
    external_pres = external

    # specify the slide you want to copy the contents from
    ext_slide = external_pres.slides[1]

    # Define the layout you want to use from your generated pptx
    # slide_layout = new.slide_layouts[0]
    # lay = external.slide_layouts.index()
    # lay = external.slide_layouts.get_by_name()
    slide_layout = new.slide_layouts[6]

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

    # now copy contents from external slide, but do not copy slide properties
    # e.g. slide layouts, etc., because these would produce errors, as diplicate
    # entries might be generated

    for shp in ext_slide.shapes:
        el = shp.element
        newel = copy.deepcopy(el)
        curr_slide.shapes._spTree.insert_element_before(newel, 'p:extLst')
        #curr_slide.SlideShapes.add_shape(new_shape)

    return new.save('test1.pptx')

两个演示文稿是否包含相同的slidemaster布局?如果是这样的话,看起来你应该可以只更新布局,但我还没有尝试。如果不是,你能详细说明“它不是完美的”和“它覆盖了一切”的细节吗?实际上,幻灯片的可移植性/从一个演示文稿复制到另一个演示文稿的能力是一个悬而未决的问题。但这不是
pptx
库的原始范围的一部分。两个演示文稿是否包含相同的slidemaster布局?如果是这样的话,看起来你应该可以只更新布局,但我还没有尝试。如果不是,你能详细说明“它不是完美的”和“它覆盖了一切”的细节吗?实际上,幻灯片的可移植性/从一个演示文稿复制到另一个演示文稿的能力是一个悬而未决的问题。但这不是
pptx
库的原始范围的一部分。