scanny / python-pptx

Create Open XML PowerPoint documents in Python
MIT License
2.39k stars 518 forks source link

Slide duplicate Microsoft office interprets python-pptx powerpoint files as corrupted #961

Closed haoyjp closed 2 months ago

haoyjp commented 6 months ago

import copy import pptx def copy_slide(pres, slide_index): def _get_blank_slide_layout(pres): layout_items_count = [len(layout.placeholders) for layout in pres.slide_layouts] min_items = min(layout_items_count) blank_layout_id = layout_items_count.index(min_items) return pres.slide_layouts[blank_layout_id]

blank_slide_layout = _get_blank_slide_layout(pres)
source=pres.slides[slide_index]
dest = pres.slides.add_slide(blank_slide_layout)
rels = source.part.rels
#for key, value in source.part.rels.items():
for key, value in rels.items():
    # Make sure we don't copy a notesSlide relation as that won't exist
    if not "notesSlide" in value.reltype:
            dest.part.rels._add_relationship(value.reltype, value._target, False)

print(pptx.version) prs=pptx.Presentation('old.pptx') copy_slide(prs, 1) prs.save("new.pptx")

mdylan2 commented 2 months ago

Did you manage to solve this?