python处理ppt文件,转换成图片或者pdf文件(获取目录下所有文件信息、文件名称分割、文档操作)
把PPT每一页截图到公众号里推送可是个体力活,那就用python脚本去分解ppt,保存每一个为一张图片好了
需要用到“win32com.client”库
import win32com.client
import os
import sys
第一步,定义读取ppt文件路径和输出路径
path = os.path.abspath(os.path.dirname(sys.argv[0]))
#PPT存放路径
ppt = path + '/' + "test.ppt"
#转换成图片后存放路径
filename = path + '/' + '001.jpg'
第二步,ppt路径和存放路径传到转换方法中执行
def ppt2png(ppt, filename):
# 打开PPT程序
ppt_app = win32com.client.Dispatch('PowerPoint.Application')
# 打开ppt文件(后台模式)
ppt = ppt_app.Presentations.Open(ppt)
# 打开的PPT另存为图片文件。17数字是ppt转图片,32数字是ppt转pdf。
ppt.SaveAs(filename, 17)
print("导出成png格式成功!!!")
# 退出PPT程序
ppt_app.Quit()
ppt2png(ppt, filename)
其实,就是这么简单。执行后,会在脚本和目录下创建一个文件夹,里面存放ppt每一页的图片文件

当然,也可以转成pdf文件,把第二步的“ppt.SaveAs”后括号内数字改成32,同时把第一步“filename”后的后缀由jpg改成pdf即可,生成上左图pdf文件
这里有个疑问,“filename”的后缀如果是jpg或者png,会创建一个文件夹,把图片存文件夹内,但是如果是pdf则只会在目录下生成一个pdf文件,没搞明白为何
当然,如果不想更改ppt文件名称,实现拖到脚本目录下即可转换,那就加上获取文件内所有文件信息,同时通过匹配后缀名的方式识别ppt文件转换
#获取默认目录下所有文件
filenames = os.listdir(path) #循环读取文件名称
for ppt in filenames:
#判断文件名称,筛选出后缀名为ppt或者pptx的文件
if ppt.endswith('ppt') or ppt.endswith('pptx'):
#将获取的文件名字进行分割,提取出文件名,比如1024.ppt,按照下面的规则base=1024,ext=ppt
base, ext = ppt.split('.')
#转换成图片后存放路径
filename = path + '/' + base + '.jpg'
#识别出ppt文件后,拼接成ppt文件存放路径
ppt = path + '/' + ppt
else:
continue
以上,实现文首预期效果,附全部代码
import win32com.client
import os
import sys path = os.path.abspath(os.path.dirname(sys.argv[0])) #获取默认目录下所有文件
filenames = os.listdir(path) def ppt2png(ppt, filename):
# 打开PPT程序
ppt_app = win32com.client.Dispatch('PowerPoint.Application')
# 打开ppt文件(后台模式)
ppt = ppt_app.Presentations.Open(ppt)
# 打开的PPT另存为图片文件。17数字是ppt转图片,32数字是ppt转pdf。
ppt.SaveAs(filename, 17)
print("转换成功!!!")
# 退出PPT程序
ppt_app.Quit() #循环读取文件名称
for ppt in filenames:
#判断文件名称,筛选出后缀名为ppt或者pptx的文件
if ppt.endswith('ppt') or ppt.endswith('pptx'):
#将获取的文件名字进行分割,提取出文件名,比如1024.ppt,按照下面的规则base=1024,ext=ppt
base, ext = ppt.split('.')
#转换成图片后存放路径
filename = path + '/' + base + '.jpg'
#识别出ppt文件后,拼接成ppt文件存放路径
ppt = path + '/' + ppt
#执行ppt2png方法,转换ppt
ppt2png(ppt, filename)
else:
continue
“win32com.client”的使用参考:https://blog.csdn.net/qq_28304687/article/details/80721653
python处理ppt文件,转换成图片或者pdf文件(获取目录下所有文件信息、文件名称分割、文档操作)的更多相关文章
- 批量将网页转换成图片或PDF文档技巧分享
工作中我们有时要将一些批量的网页转换成图片或者PDF文档格式,尽管多数浏览器具有滚动截屏或者打印输出PDF文档功能.可是假设有几十上百张网页须要处理,那也是要人命的.所以我一直想找一款可以批量处理该工 ...
- wkhtmltox实现网页转换成图片或pdf
1.先下载http://download.gna.org/wkhtmltopdf/obsolete/windows/wkhtmltox-0.11.0_rc1-installer.exe,安装 2.在命 ...
- Linux shell 获取目录下时间最新的文件的文件名
ls -lt /dirname/ | grep filename | head -n 1 |awk '{print $9}' 逐条解释: ls -lt /dirname/ 列出此目录下的所有文件并按照 ...
- caffe的idx1-ubyte和idx1-ubyte文件转换成图片文件和文本文件
train-images-idx3-ubyte : training set images train-labels-idx1-ubyte : training set labels t10k-i ...
- python 遍历, 获取目录下所有文件名和文件夹的方法-----os.walk(), os.listdir
http://www.runoob.com/python/os-walk.html https://www.cnblogs.com/dreamer-fish/p/3820625.html 转载于:ht ...
- C# 获取目录下文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 用Python将word文件转换成html(转)
用Python将word文件转换成html 序 最近公司一个客户大大购买了一堆医疗健康方面的科普文章,希望能放到我们正在开发的健康档案管理软件上.客户大大说,要智能推送!要掌握节奏!要深度学习!要 ...
- mpp文件转换成jpg图片,可以用pdf文件做中转站
用project软件做了一个表,发现不能转换成图片,先把mpp文件转换成pdf文件,然后用PS打开pdf文件,存储为jpg格式就行了
- 自制 Python小工具 将markdown文件转换成Html文件
今天看到了一个Python库,名为markdown.瞬间就给了我一个灵感,那就是制作一个将markdown文件转换成html文件的小工具. 我的实验环境 操作系统: Windows 7 64位 旗舰版 ...
- Ghostscript 将PDF文件转换成PNG图片 问题一二
由于项目需求,需要将原来的PDF文档转换成图片文件,在网上找了一些PDF转图片的方法:测试了几个后,都有这样或那样的问题 1.PDFLibNet.dll,这个类型最初还是挺好用的,能转图片和HTML, ...
随机推荐
- MongoDB:文章评论系统模拟
- Jetbrains系列产品无限时间重置插件
概述Jetbrains家的产品有一个很良心的地方,他会允许你试用30天(这个数字写死在代码里了)以评估是否你真的需要为它而付费. 事实上有一款插件可以实现这个功能,你或许可以用它来重置一下试用时间.但 ...
- String、StringBuffer、StringBuilder三者的异同
/*String.StringBuffer.StringBuilder三者的异同?String:不可变的字符序列:底层使用char[]存储StringBuffer:可变的字符序列:线程安全的,效率低: ...
- 一文详解 Sa-Token 中的 SaSession 对象
Sa-Token 是一个轻量级 java 权限认证框架,主要解决登录认证.权限认证.单点登录.OAuth2.微服务网关鉴权 等一系列权限相关问题. Gitee 开源地址:https://gitee.c ...
- RocketMQ实战—6.生产优化及运维方案
大纲 1.RocketMQ集群如何进行权限机制的控制 2.如何对RocketMQ集群进行消息堆积的追踪 3.如何处理RocketMQ的百万消息积压问题 4.针对RocketMQ集群崩溃的金融级高可用方 ...
- ClickHouse 常用语句
一.常用操作 1.建数据库 连接数据库:clickhouse-client -h 10.0.0.0 --port 9000 -u test_user --password test_password ...
- Java 中堆内存和栈内存上的数据分布和特点
博客:https://www.emanjusaka.com 博客园:https://www.cnblogs.com/emanjusaka 公众号:emanjusaka的编程栈 by emanjusak ...
- [计算机/硬件/GPU] 显卡
序 截至2025年,全球主流的AI大模型满血版的参数量均已突破百亿级,算力需求正以指数级飙升.特别是 DeepSeek 公司旗下的 R1 系列模型的问世,推动了很多中小企业部署私有化模型的需求. 然而 ...
- 发那科机器人R2000iC齿轮箱维修方法步骤归纳
一.发那科机器人R2000iC齿轮箱常见故障类型及原因 齿轮磨损:长时间的重载工作或润滑不良可能导致齿轮磨损,表现为噪音增大.振动加剧等. 轴承故障:轴承承受了齿轮箱的径向和轴向载荷,其故障可能导致齿 ...
- 不到24小时,AOne让全员用上DeepSeek的秘诀是……
DeepSeek引发新一轮AI浪潮,面对企业数字化智能升级与数据安全红线的急迫需求,IT负责人的压力山大!如何在24小时内实现全员AI落地,同时为后续安全部署铺平道路? Step1:一键开启全员智能时 ...