首页 > 编程语言 >Python pywin32(win32com)复制和删除幻灯片页面

Python pywin32(win32com)复制和删除幻灯片页面

时间:2024-09-06 20:14:09浏览次数:10  
标签:Python pywin32 param slide win32com 幻灯片 template path pres

# 自动添加幻灯片  
def duplicate_slides(_path_template, _path_dest, _slide_nums, _index=SLIDE_START_PAGE):
    """
    输入参数:
    :param _path_template:PPT模板文件全路径
    :param _index:PPT母版业起始索引。索引从1开始。
    :param _slide_nums:将要复制的PPT页数
    :param _path_dest:PPT课件存放全路径
    功能:自动添加幻灯片页数。  
    """
    assert _path_template.exists(), f'模板文件不存在!!!<->{_path_template}'
    ppt = Dispatch('PowerPoint.Application')  # 启动PowerPoint
    pres = ppt.Presentations.Open(_path_template)  # 打开幻灯片文件
    pres.Slides(_index).Copy()  # 复制模板页
    for _ in range(_slide_nums - 1):
        pres.Slides.Paste(_index)  # 粘贴模板页
    pres.SaveAs(_path_dest)  # 另存为
    pres.Close()  # 关闭 PowerPoint 文档
    ppt.Quit()  # 退出PowerPoint应用


# 删除ppt页面
def delete_slides(_path_template, _path_dest, _slide_nums, _index=SLIDE_START_PAGE):
    """
    输入参数:
    :param _path_template:PPT模板文件全路径
    :param _index:PPT母版业起始索引。索引从1开始。
    :param _slide_nums:将要创建的PPT页数
    :param _path_dest:PPT课件存放全路径
    功能:自动添加幻灯片页数。  
    """
    assert _path_template.exists(), f'模板文件不存在!!!<->{_path_template}'
    ppt = Dispatch('PowerPoint.Application')  # 启动PowerPoint
    pres = ppt.Presentations.Open(_path_template)  # 打开幻灯片文件
    slide_count = pres.Slides.Count  # 获取幻灯片的页数
    assert slide_count > _slide_nums, '幻灯片页数不足!!!'
    del_list = list(range(_index, slide_count - _slide_nums))
    pres.Slides.Range(del_list).Delete()  # 删除第3张后面的幻灯片页面
    pres.SaveAs(_path_dest)  # 另存为
    pres.Close()  # 关闭 PowerPoint 文档
    ppt.Quit()  # 退出PowerPoint应用

 

标签:Python,pywin32,param,slide,win32com,幻灯片,template,path,pres
From: https://www.cnblogs.com/zdt168/p/18400927

相关文章