Python-pptx: copy slide

前端 未结 6 1030
谎友^
谎友^ 2020-12-16 05:59

How can I copy slide?

I created a template slide and I need to copy it and edit shapes of each copy separately.

Or how I can add my template slide to present

6条回答
  •  温柔的废话
    2020-12-16 06:47

    Here is another way to copy each slide onto a single PPTX slide for an entire presentation, and then you can use LibreOffice to convert each individual powerpoint into an image:

    def get_slide_count(prs):
    """ Get the number of slides in PPTX presentation """
        slidecount = 0
        for slide in prs.slides:
            slidecount += 1
        return slidecount
    
    
    def delete_slide(prs, slide):
        """ Delete a slide out of a powerpoint presentation"""
        id_dict = { slide.id: [i, slide.rId] for i,slide in enumerate(prs.slides._sldIdLst) }
        slide_id = slide.slide_id
        prs.part.drop_rel(id_dict[slide_id][1])
        del prs.slides._sldIdLst[id_dict[slide_id][0]]
    
    
    def get_single_slide_pres(prs, slidetokeep):
        for idx, slide in enumerate(prs.slides):
            if idx < slidetokeep:
                delete_slide(prs, slide)
            elif (idx > slidetokeep):
                delete_slide(prs, slide)
        prs.save(str(slidetokeep + 1) + ".pptx")
    
    
    pptxfilepath = "test.pptx"
    prs = Presentation(pptxfilepath)
    slidecount = get_slide_count(prs)
    for i in range(slidecount):
        prs_backup = Presentation(pptxfilepath)
        get_single_slide_pres(prs_backup, i)
        prs_backup = None
    

提交回复
热议问题