如何复制幻灯片?
我创建了一个模板幻灯片,我需要复制它并分别编辑每个副本的形状。
或者如何将我的模板幻灯片添加到presentation.slide_layouts?
发布于 2018-07-03 20:24:17
这是我在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)
我仍然在编辑复制的幻灯片中的形状,一旦我在我的项目中进行得更深入,我就可以更新
发布于 2019-08-21 01:32:12
我想介绍一下复制幻灯片的变通方法。我使用一个模板ppt并填充它。在填充幻灯片之前,我知道模板的哪些幻灯片需要复制以及多久复制一次。然后我要做的是复制幻灯片,并将新的ppt与复制的幻灯片一起保存。保存后,我可以打开带有复制的幻灯片的ppt,并使用pptx填充幻灯片。
import win32com.client
ppt_instance = win32com.client.Dispatch('PowerPoint.Application')
#open the powerpoint presentation headless in background
read_only = True
has_title = False
window = False
prs = ppt_instance.Presentations.open('path/ppt.pptx',read_only,has_title,window)
nr_slide = 1
insert_index = 1
prs.Slides(nr_slide).Copy()
prs.Slides.Paste(Index=insert_index)
prs.SaveAs('path/new_ppt.pptx')
prs.Close()
#kills ppt_instance
ppt_instance.Quit()
del ppt_instance
在这种情况下,将复制演示文稿的第一张幻灯片,并将其插入到同一演示文稿的第一张幻灯片之后。
希望这对你们中的一些人有帮助!
发布于 2020-07-16 02:49:13
我一直在使用n00by0815's answer,它工作得很好,直到我不得不复制图像。Here是我改编的处理图像的版本。此代码创建图像的本地副本,然后将其添加到幻灯片中。我相信有一种更干净的方法,但这是可行的。
https://stackoverflow.com/questions/50866634
复制相似问题