使用现有的pptx创建新的pptx Python-Pptx

时间:2018-09-21 17:46:32

标签: python python-3.x powerpoint python-pptx

我正在尝试使用old.pptx创建new.pptx。 old.pptx中有4张幻灯片。我想创建内容几乎相同的new.pptx,并在4张幻灯片中进行少量文本修改。我从下面的代码中跳过了修改部分,您可以举一个例子,例如将小写转换为大写。.需要在运行时执行这些操作,因此,如果我只传递old.pptx,它将执行所需的操作,并且然后将其写入具有相同编号的新pptx。幻灯片。.我不确定如何进行以下调整,可能需要完全更改。请看下面的代码。

from pptx import Presentation

prs1 = Presentation() 

prs = Presentation('old.pptx') 

title_slide_layout = prs1.slide_layouts[0] 
for slide in prs.slides: 
     for shape in slide.shapes: 
            if not shape.has_text_frame: 
                    continue 
            for paragraph in shape.text_frame.paragraphs: 
                    #print(paragraph.text) 
                    prs1.slides.add_slide(paragraph.text)
     prs1.save('new.pptx')

2 个答案:

答案 0 :(得分:2)

您只需打开演示文稿,进行所需的更改,然后使用新名称保存,即可创建演示文稿的“修改”副本。

from pptx import Presentation

prs = Presentation('original.pptx')
for slide in prs.slides: 
    for shape in slide.shapes: 
        if not shape.has_text_frame: 
            continue
        text_frame = shape.text_frame
        text_frame.text = translate(text_frame.text)

prs.save('new.pptx')

如果您为此提供translate(text) -> translated text函数,它将满足您的要求。

答案 1 :(得分:1)

是否可以使用新名称复制“ old.pptx”副本,然后打开副本进行编辑?如果可以的话,您可以这样做:

import subprocess
old_file = 'old.pptx';
new_file = 'new.pptx';
subprocess.call('cp '+old_file+' '+new_file,shell=True)

现在您可以打开新文件进行编辑/修改。

如果您使用的是Windows计算机,则应查找与cp命令等效的内容。