import collections
import collections.abc
import copy
from pptx import Presentation
def copy_slide(prs, source, target_index):
dest = prs.slides.add_slide(source.slide_layout)
for shp in dest.shapes:
shp.element.getparent().remove(shp.element)
# Copy shapes from source, in order
for shape in source.shapes:
new_shape = copy.deepcopy(shape.element)
dest.shapes._spTree.insert_element_before(new_shape, 'p:extLst')
# Copy rels from source
for key, val in source.part.rels.items():
target = val._target
dest.part.rels.add_relationship(val.reltype, target, val.rId, val.is_external)
# Move appended slide into target_index
prs.slides.element.insert(target_index, prs.slides.element[-1])
return dest
prs = Presentation('test.pptx')
source = prs.slides[1]
prs2 = Presentation('copy.pptx')
copyslide = copy_slide(prs2, source, 1)
prs2.save('copy2.pptx')
print(copyslide)
我可以将test.pptx的第二张幻灯片复制到copy.pptx并创建新的copy2.pptx,但新的ppt已损坏。
我还在终端得到以下错误:
用户警告:重复名称:'ppt/slideLayouts/_rels/slideLayout9.xml.rels' return self._open_to_write(zinfo,force_zip64=force_zip64)
2条答案
按热度按时间2guxujil1#
@SuyeshSG我做了一个类似的代码,我分享。
希望这能帮上忙
93ze6v8z2#
当您想要重复使用信息并保存时间时,将幻灯片从一个PowerPoint演示文稿复制到另一个演示文稿可能是一个方便的技巧。但是,当涉及到从一个PowerPoint演示文稿复制一个幻灯片并将其粘贴到另一个演示文稿中的特定位置时,事情可能会变得有点棘手。在本文中,我们将指导您完成这些步骤。
将幻灯片从一个PowerPoint演示文稿复制到另一个PowerPoint演示文稿的分步指南:
打开两个演示文稿:
1.要从中复制幻灯片的幻灯片和要将其粘贴到其中的幻灯片。
1.在要从中复制幻灯片的演示文稿中,选择要复制的幻灯片。
1.右键单击所选幻灯片,然后选择“复制”或使用“Ctrl+C”快捷键。转到要粘贴幻灯片的演示文稿,然后选择要在其后插入复制的幻灯片的幻灯片。
1.右键单击所选幻灯片,然后选择“粘贴”或使用“Ctrl+V”快捷键。复制的幻灯片将显示在新演示文稿中。