【问题标题】:create new pptx using existing pptx Python-Pptx使用现有的 pptx Python-Pptx 创建新的 pptx
【发布时间】:2018-09-21 17:46:31
【问题描述】:

我正在尝试使用 old.pptx 创建 new.pptx 。 old.pptx 中有 4 张幻灯片。我想在 4 张幻灯片中创建具有几乎相同内容且文本修改很少的 new.pptx。我从下面的代码中跳过了修改部分,你可以举个例子,比如将小写字母转换为大写字母。需要在运行时做这些事情,这样如果我只是通过 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')

【问题讨论】:

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


    【解决方案1】:

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

    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 函数,它会执行您的要求。

    【讨论】:

    • 所以你的意思是,不需要遍历每张幻灯片,只需打开幻灯片并进行更改然后保存?
    • 我必须将每张 ppt 幻灯片翻译成某种不同的语言,翻译者只接受文本,这就是为什么我想遍历幻灯片的文本,然后将其添加到新的 pptx 和幻灯片中。直接传ppptx不行..
    • 我已经详细说明了我的代码示例。最好在原始问题中很好地描述您的用例,以便人们了解您的目标;这会导致最好的答案。下次要记住的事情。
    • 它的工作。但是,如果有一些以“bullet”或其他“bullet”开头的文本,但是是的,我得到了这些文本..
    • @RonyA 处理子弹是一个单独的问题,并且已经被问过并回答了几次。如果现有的问题不能解决您的特定情况,您为什么不搜索并提出一个新问题。
    【解决方案2】:

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

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

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

    如果你使用的是 Windows 机器,你应该寻找 cp 命令的等价物。

    【讨论】:

    • 在将上下文复制到新的pots幻灯片之前,我必须对从旧pptx中提取的文本进行一些操作,然后创建具有相同编号的新pptx。幻灯片..举个例子,我需要在每张幻灯片中编辑一些文本..
    • 无论如何,我的主要问题是如何创建新的 pptx 幻灯片,然后从旧的 pptx 复制内容,创建相同的编号。幻灯片...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多