Python脚本 - 自动合成PPT长图

基于mindshow工具快速生成PPT mindshow 阅读详情

不知道小伙伴们有没有用PPT做过海报,然后需要将PPT导出成图片,在画图工具里再拼接成长图,如果PPT的页数很多,需要耗费一些时间,以下脚本可以自动将PPT拼接成一个长图。

1、参数1输入绝对路径,参数2输出带后缀的文件名称。
2、生成的长图会直接生成在和ppt所在的同级目录。
3、同时会生成一个和ppt名称一样的目录,用于存放每页ppt的图片。

PS:需要注意的是,PPT每页里的内容需要按设计铺满整页PPT,脚本不会自动识别裁剪哦~

****文章最后我放了一个拼接的海报效果图****

# -*- coding: UTF-8 -*-
# Auther: youren.S

import os
import shutil
import win32com
import win32com.client
# from win32com.client import constants
from PIL import Image

ppt_dir = input(r"输入PPT所在目录的绝对路径:")
ppt_file = input(r"输入PPT文件名称,含后缀(如ppt&pptx):")
ppt_name1,ppt_name2 = ppt_file.split(".")

file_ext = os.path.splitext(ppt_file)[1]

# 判断文件后缀
if file_ext == ".ppt" or file_ext == ".pptx":
    print("="*60)
else:
    print("请检查文件后缀是否正确。")

ppt_dirfile = ppt_dir + '/' + ppt_file
print(ppt_dirfile)


# wc = win32com.client.constants
def output_file(ppt_path):
    """
    判断文件是否存在并生成图片保存目录
    :param ppt_path: ppt文件路径
    :return: 文件保存目录
    """
    output_path = ""
    if os.path.exists(ppt_path):
        fname, ext = os.path.splitext(ppt_file)
        output_path = os.path.join(ppt_dir, fname)
        if os.path.isdir(output_path):
            shutil.rmtree(output_path)
        os.mkdir(output_path)
    return output_path


def ppt2png(ppt_path, long_sign: str):
    """
    ppt 转 png 方法
    :param ppt_path: ppt 文件的绝对路径
    :param long_sign: 是否需要转为生成长图的标识
    :return:
    """
    if os.path.exists(ppt_path):
        output_path = output_file(ppt_dirfile)  # 判断文件是否存在
        ppt_app = win32com.client.Dispatch('PowerPoint.Application')
        # 设置为0表示后台运行,不显示,1则显示
        ppt_app.Visible = 1
        ppt = ppt_app.Presentations.Open(ppt_path)  # 打开 ppt
        ppSaveAsJPG = 17
        ppt.SaveAs(output_path, ppSaveAsJPG)  # 17表示 ppt 转为图片
        ppt_app.Quit()  # 关闭资源,退出

        if 'Y' == long_sign.upper():
            generate_long_image(output_path)  # 合并生成长图

    else:
        raise Exception('请检查文件是否存在!\n')


def generate_long_image(output_path):
    """
    将ppt的各个页面拼接成长图
    :param output_path:
    :return:
    """
    picture_path = output_path
    last_dir = os.path.dirname(picture_path)  # 上一级文件目录

    # 获取图片列表
    # ims = [Image.open(os.path.join(picture_path, fn)) for fn in os.listdir(picture_path) if fn.endswith('.jpg')]
    ims = []
    for fn in os.listdir(picture_path):
        if fn.lower().endswith('.jpg'):
            ims.append(os.path.join(picture_path, fn))

    # print(ims)
    # 将获取到ppt的页面进行排序
    ims_sort = sorted(ims, key=lambda jpg: len(jpg))
    # print(ims_sort)

    width, height = Image.open(ims[0]).size  # 取第一个图片尺寸
    long_canvas = Image.new(Image.open(ims[0]).mode, (width, height * len(ims)))  # 创建同宽,n倍高的空白图片

    # 拼接图片
    for i, image in enumerate(ims_sort):
        long_canvas.paste(Image.open(image), box=(0, i * height))
    long_canvas.save(os.path.join(last_dir, ppt_name1+'.png'))  # 保存长图

if __name__ == '__main__':
    # # ppt_path = "test_template.pptx"
    cur_path = os.getcwd()
    print(cur_path)
    ppt_path = os.path.join(cur_path, ppt_dirfile)   # 需要使用绝对路径,否则会报错
    long_sign = "y"
    ppt2png(ppt_path, long_sign)

效果图如下:
在这里插入图片描述

用python将两个ppt每一页交叉合在一起 将两个ppt交叉整合在一块。 阅读详情

相关推荐

Python办公自动化 5.1 Python操作ppt:win32com 使用教程 操作复制ppt PowerPoint

文章目录5.1.1 pip安装win32com5.1.2 win32com复制ppt模板 win32com PowerPoint 官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shape.copy 5.1.1 pip安装win32com pip install pypiwin32 由于我已经安装过了,所以提示已经安装: 5.1.2 win32com复制ppt模板 有时候我们需要对ppt的模板进行复制,然后再添加相应内容,由

超级大洋葱的博客 5673

使用Python合并PPT文件

通过使用Python编程语言和wxPython模块,我们可以轻松地创建一个GUI应用程序来合并PPT文件。这种自动化的方法可以大大提高我们的工作效率,减少重复操作的时间和精力消耗。希望本文对您有所帮助,让您更加便捷地处理和管理PPT文件。

Winfredzhang的博客 1818

pptjoin 多个ppt文件合并成一个ppt文件

可以将多个ppt文件合并成一个ppt文件,软件名为pptjoin,用JS开发的。

python自动化第二篇——合并ppt

python合并ppt的方法有很多,但网上常说的python-pptx的方法,我用不了,这里我用了一个python-office的库。但又两个缺点,第一个生成的文档在你的用户名下的文档里,第二个是名字随机。

weixin_73368873的博客 1641

ml307 二次开发

中移物联网旗下4g模组官方网站官方教程id=514官方客户不知道啥时候上班 早上10点也说不在服务时间内 找不到官方的sdk下载路径。

myWorld001的博客 2886

维纳(Wiener)复原滤波器的三种推导形式及其在图像处理中的应用

本文深入解析了维纳(Wiener)复原滤波器的三种核心推导形式:卷积形式、矩阵向量形式和频域形式,并重点阐述了其基于线性最小均方误差(LMMSE)估计的核心思想。通过Python实战演示,展示了频域形式如何高效地在图像去模糊与噪声抑制之间取得平衡,是图像复原领域的经典且实用的工具。

net55的博客 578

python多张图片生成ppt_用Python实现ppt转化图片(附带长图合并功能)

前言笔者前一阵在学习数据相关的东西,从初学开始,一直在参加社区中的图表小挑战,此项活动是社区出题人给出一定官方数据,参加小挑战的人员可以对数据进行可视化,从而挖掘出有趣的信息。而这个可视化的过程中,用到的可视化工具叫 Tableau ,大家有兴趣可以去查看下,能做出非常美丽的图,之前一直分享在朋友圈里,有些朋友也看到了。在参与比赛的过程中,笔者遇到一个头疼的点,每次做成的图表拷到ppt中,要想可观...

weixin_33977572的博客 1767

新硬盘到手,在统信UOS或麒麟系统上怎么认?保姆级教程从识别到挂载一步到位

本文提供新硬盘在统信UOS或麒麟KYLINOS系统上的完整配置指南,从识别物理硬盘到挂载全流程详解。通过终端命令如df和lsblk,帮助用户完成硬盘识别、分区、文件系统创建及挂载配置,确保新硬盘顺利投入使用。

weixin_30698297的博客 442

python ppt 图片_利用Python将PPT转换为图片并合成长图

最近因为某些需求需要将PPT转换为图片并合并成预览图,于是第一时间就想到了用python解决问题,过程中参考了一位老哥写的文章,链接如下。Python行家:用Python实现ppt转化图片(附带长图合并功能)​zhuanlan.zhihu.com功能的实现很简单 ,分两步,第一步:将PPT转换为图片格式;第二步:将图片合并生成预览图。PPT转换为图片:老哥使用了win32com库来操作com组件,...

weixin_39923157的博客 1002

手把手教学,Python 游戏编程之实现飞机大战(含源代码)

我想大家都是有玩过类似飞机大战的射击类游戏,也享受目标被消除通过后带来的愉悦感。那么如果用Python来实现飞机大战游戏?下面就跟大家一起用Python来做一个小游戏,不仅可以从中感受到乐趣,还可以提升自己的能力。

veratata的博客 1万+

AI医疗影像诊断工具2025 完整教程

本教程所述工具均为辅助诊断设备,不可替代执业医师判断。部署使用需遵守当地医疗器械管理法规。推荐开源框架组合:代码太多打包上传网盘了 自行下载。2025年的AI医疗影像诊断工具将以。

m0_60084632的博客 2029

用Python实现PPT转化图片

图片来源于网络1前言笔者前一阵在学习数据相关的东西,从初学开始,一直在参加社区中的图表小挑战,此项活动是社区出题人给出一定官方数据,参加小挑战的人员可以对数据进行可视化,...

Python中文社区 6645

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5826

python实现将ppt内容导出为图片并拼接成长图

【代码】python实现将ppt内容导出为图片并拼接成长图。

m0_51777056的博客 1285

uniapp [安卓苹果App端] - 实现集成微信一键登录及授权获取用户信息全流程源码,uniApp唤起微信客户端app实现微信授权头像昵称手机号(提供移动应用/开放平台/资质认证/签名/权限申请

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信一键登录,uniapp项目App端实现微信登录,Uniapp实现微信授权登录,调起微信客户端授权用户信息,uniappapp端微信一键登录打开手机微信app,app端如何唤起用户本机微信应用并授权登陆,如何申请微信一键登录,uniapp实现APP微信登录流程,打开本地微信软件,接入微信登录,UniApp实现微信登录教程,获取头像昵称手机号用户数据,超详细实现微信登录功能,唤起没反应,授权失败,获取

🏆 前端领域优质创作者 1万+

《AgentScope-Java 深入浅出教程》第1章 AgentScope-Java 简介

AgentScope-Java 是一个面向智能体的编程框架,专门用于构建基于大语言模型(LLM)的 AI 应用程序。│ 你的业务应用 ││ AgentScope-Java 框架 ││ │ 智能体 │ │ 工具 │ │ 记忆 │ │ 模型 │ ││ LLM 服务 (DashScope/OpenAI/...) │能力说明类比ReAct 推理让智能体能够"思考"并"行动"就像人类思考后再做事工具调用让智能体能够执行外部操作就像人使用计算器、搜索引擎记忆管理让智能体能够记住对话历史。

步子哥的博客 592

canvas导出图片python_用Python实现ppt转化图片(附带长图合并功能)

用Python实现ppt转化图片(附带长图合并功能)前言笔者前一阵在学习数据相关的东西,从初学开始,一直在参加社区中的图表小挑战,此项活动是社区出题人给出一定官方数据,参加小挑战的人员可以对数据进行可视化,从而挖掘出有趣的信息。而这个可视化的过程中,用到的可视化工具叫 Tableau ,大家有兴趣可以去查看下,能做出非常美丽的图,之前一直分享在朋友圈里,有些朋友也看到了。在参与比赛的过程中,笔者遇...

weixin_39722692的博客 549

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

powerpoint-to-pdf:快速转换PPT为PDF的利器

powerpoint-to-pdf:快速转换PPT为PDF的利器 项目介绍 在当今快节奏的工作和学术环境中,我们需要一个高效、便捷的方法将PowerPoint文档转换为PDF格式,以便于分享和存储。今天,我要为大家推荐一个开源项目——powerpoint-to-pdf,它提供了一套Python脚本,能够帮助我们轻松实现PPT到PDF的转换。 项目技术分析 powerpoint-to-pdf 项目基...

gitblog_00276的博客 1218

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

PPT转换成图片及合成长图

Web项目需要将ppt转换成图片,以便使用浏览器预览。另外宣传时需要长图,可以将ppt快速转换成一张图。

chanbzou1981的博客 1778

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

PPT Master:把任意文档变成可完全编辑的 PowerPoint

PPT Master 是一个开源的 AI PPT 生成工作流:给它一份 PDF、Word 文档,甚至一段文字,它就能在你的电脑上生成原生可编辑的 PowerPoint 文件——每个文本框、形状、图表都能直接选中修改。 大多数 AI PPT 工具给你的是"装在 pptx 里的图片":打开一看全是整张位图,改一个字都得重做。PPT Master 走的是另一条路:AI 先把每页画成 SVG 矢量图,再

gitblog_00269的博客 1066

python代码——批量将PPT转换成长图

用法:点击运行后,弹出窗口,选择文件夹,程序运行会将文件夹内的所有PPT文件全部转换成PPT长图,图片名称与PPT文件名称相同,保存位置相同。共分享两种代码,可以尝试运行。语言:python 3。

锦慈的技术博客 2088

python pil保存图片_用Python实现ppt转化图片(附带长图合并功能)

前言笔者前一阵在学习数据相关的东西,从初学开始,一直在参加社区中的图表小挑战,此项活动是社区出题人给出一定官方数据,参加小挑战的人员可以对数据进行可视化,从而挖掘出有趣的信息。而这个可视化的过程中,用到的可视化工具叫 Tableau ,大家有兴趣可以去查看下,能做出非常美丽的图,之前一直分享在朋友圈里,有些朋友也看到了。在参与比赛的过程中,笔者遇到一个头疼的点,每次做成的图表拷到ppt中,要想可观...

weixin_39994438的博客 224

PPT Master:把任意文档变成可编辑的 PowerPoint 演示,三步上手

PPT Master 是一套开源的 AI 演示文稿生成工作流:把 PDF、Word、网页甚至一个主题交给它,它就在用户本机输出一份原生可编辑的 PPTX 文件(即可以直接在 PowerPoint 里逐元素修改的文件)。全程不用写代码,素材也不会离开本机。 ## 它能帮你做什么 - **文档变完整 deck**:输入一份 40 页的年报 PDF,输出 15 页的演示文稿,分页、论证逻辑、版面都替

gitblog_00028的博客 793

PPT Master 使用教程:让 AI 生成的 PPT 真的能在 PowerPoint 里编辑

PPT Master 是一个开源项目:在聊天窗口里说"把这个 PDF 做成 PPT",它就跑在你自己的电脑上,输出一份原生可编辑的 .pptx——文本框、形状、图表都能在 PowerPoint 里继续改,而不是整页截图拼出来的图片。它不绑定任何 IDE 或模型,也不额外收订阅费。 ## 这几类人可以先对号入座 - 📊 要交季度汇报的产品经理:文档变 deck,图表还是能改数据的对象 - 🎓

gitblog_01103的博客 836

python 实现PPT转化为长图,代码如下

width, height = ims[0].size # 获取拼接图片的宽和高。ns.append('幻灯片' + str(n) + '.png')result_path_target 图片存放目标路径。##把要处理的文件目录和处理后要保存到的目录调成同一个。##添加当前目录下的文件名到fns列表(无序)## 找到对应文件打开放入ims列表。##计算fns长度并且按照目标命名。##初始化读取文件目录存放的列表。##新建图像以目标格式创建大小。##排序后的文件名存放列表。##最终处理的文件存放列表。

m516387177的博客 386

ppt生成eps文件_用Python实现ppt转化图片(附带长图合并功能)

用Python实现ppt转化图片(附带长图合并功能)前言笔者前一阵在学习数据相关的东西,从初学开始,一直在参加社区中的图表小挑战,此项活动是社区出题人给出一定官方数据,参加小挑战的人员可以对数据进行可视化,从而挖掘出有趣的信息。而这个可视化的过程中,用到的可视化工具叫 Tableau ,大家有兴趣可以去查看下,能做出非常美丽的图,之前一直分享在朋友圈里,有些朋友也看到了。在参与比赛的过程中,笔者遇...

weixin_32491317的博客 423
上一篇: Excel技巧 - 办公提效
下一篇: SQL函数 - DATE_DIFF()
Lizzy_Fly
博客等级 码龄5年 262粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值