我有几个.ppt(MS PowerPoint幻灯片)文件可供使用。它们每个都包含我要删除的几十张幻灯片。
例如,对于文件a.ppt
,我需要删除幻灯片[2,6,12,25]等。
库python-pptx没有直接“删除”,所以我想可能将所需的幻灯片复制到新文件是一种可能的解决方案。
但是我无法找到一个例子而且不确定如何继续。
答案 0 :(得分:1)
这是.pptx演示文稿的功能子集(不确定.ppt文件是否存在差异)。 Source
def dropSlides(self, slidesToKeep, prs):
"""Return a new presentation that has the correct slide subset.
Param:
- slidesToKeep: index of slides to keep from csv (int list)
- prs: presentation (pptx.presentation)
Return:
- presentation with new slide subset
"""
# get slides to delete
indexesToRemove = [x for x in range(1, len(prs.slides._sldIdLst)+1) if x not in slidesToKeep]
# subset report
for i, slide in enumerate(prs.slides):
# create slide dict
id_dict = {slide.id: [i, slide.rId] for i, slide in enumerate(prs.slides._sldIdLst)}
# iterate thorugh indexes
if i+1 in indexesToRemove:
# get slide id
slide_id = slide.slide_id
# remove slide
prs.part.drop_rel(id_dict[slide_id][1])
del prs.slides._sldIdLst[id_dict[slide_id][0]]
return prs
答案 1 :(得分:0)
我曾经做过的事情是通过键盘模拟工具(不是真正的编程语言,但也需要编写脚本)。
它识别我要删除的PPT幻灯片,多个选择它们,所以我可以一次删除它们。
希望它可以帮助某人有类似的需求。