日常工作中经常会需要把 ppt 页面转化成图片,通常我们都是对 ppt 页面截图或者使用 office 工具手动将 ppt 页面保存为图片,如果只有一两页 ppt 需要转化就还好,如果有批量的 ppt 需要处理的话那肯定不能手动来处理了,所以我们今天来用 python 实现一个批量将 ppt 转化成图片和 pdf 的工具,而且还可以将所有的图片拼接成一张长图。

老规矩,先来简单说下程序实现思路,这里依然是用到了一个很强大的第三方库 pywin32 这个库能调用 windows 的部分 api,在这里我们主要用到打开 ppt 文件的 api ,在打开 ppt 文件后,我们即可以把所有的 ppt 页面全部都导出成图片,得到所有图片后我们再使用 PIL 库来把所有的图片拼接成一张长图。

下面是完整的实现代码,将下面这个 python 脚本放在你要转化的 ppt 文件同级目录下即可,在运行之前请先确认是否安装了 pywin32 和 pillow 这两个库,两个库均可以使用 pip install 命令安装,pywin32 安装可能会不那么顺利,可以多试几次,如果实在不能安装成功,建议使用 wheel 文件安装,https://www.lfd.uci.edu/~gohlke/pythonlibs 这个网址上可以找到 pywin32 的wheel 文件,找到对应的版本下载后可使用 pip install xxx.whl 安装。

#源码来自于公众号:谭某人

import win32com

import win32com.client

import sys

import os

from PIL import Image

#获取当前目录

ppt_root = png_root =sys.path[0]+"\\"

def ppt2png(pptFileName):

powerpoint = win32com.client.Dispatch('PowerPoint.Application')

#是否后台运行

powerpoint.Visible = True

ppt_path = ppt_root + pptFileName

outputFileName = pptFileName[0:-4] + ".pdf"

ppt = powerpoint.Presentations.Open(ppt_path)

#保存为图片

ppt.SaveAs(png_root + pptFileName.rsplit('.')[0] + '.png', 17) # formatType = 17 ppt转图片

#保存为pdf

ppt.SaveAs(png_root + outputFileName, 32) # formatType = 32 ppt转pdf

# 关闭打开的ppt文件

ppt.Close()

# 关闭powerpoint软件

powerpoint.Quit()

def pngMontage(dirName):

#打开目录下所有的png图片

imageList = [Image.open(png_root+dirName+'\\'+img) for img in os.listdir(png_root+dirName) if img.endswith('.png')]

#获取每张图的宽高

width,height = imageList[0].size

#新建空白图片并设置图片的宽高,其中高度为所有图片高的总和

longImage = Image.new(imageList[0].mode,(width,(len(imageList)*height)))

for index,image in enumerate(imageList):

longImage.paste(image,box=(0,index*height)) #把小图依次粘贴到新建的空白图片中,其中box是图片位置坐标

longImage.save(dirName+'long.png')

#批量打开当前目录下所有的ppt文件

for ppt in (pptFiles for pptFiles in os.listdir(ppt_root) if pptFiles.endswith('.ppt')):

ppt2png(ppt) #ppt导出图片

pngMontage(ppt[0:-4]) #所有图片拼接成长图

学习 python 并不一定就是要从事专业程序开发,会一点 python 其实是能给我们的日常工作带来很多的便利,今天我们分享了批量处理 ppt 文件,那么其实类似的 word、excel 等 office 文件,我们都可以对其进行批量处理的,后面有机会我们再分享一些处理 word 和 excel 的方法。

python ppt转图片_ppt一键转图片和pdf相关推荐

  1. python ppt xlsx等文档转图片

    文档转jpg 一般两步 先转成pdf 再由pdf转jpg *-*本过程基于 ubuntu系统 python3.6 *-* 文档转pdf 文档转pdf,这里用到 libreoffice,通过命令去调li ...

  2. 做PPT不要傻乎乎直接插入图片,一键处理,秒变高逼格

    做PPT的时候还是只会傻乎乎插入普通图片?图片可是PPT的最吸引人注意的重点,是整个PPT的灵魂.图片用得好,PPT自然就变高级了!来看看PPT都有哪些处理照片的方法! 一.OK插件 [OK插件]是一 ...

  3. 用python一键去除图片、PDF水印

    嗨嗨,我是小圆,现在网络上的图片大多都有水印,我们每次找无水印的图片都有点难找. 但今天给大家分享一下 : 如何用python一键去除图片.PDF水印 看完学会后就不用担心 水印会影响阅读了 安装模块 ...

  4. 用python爬取公众号推送图片并保存为PPT

    文章目录 一.前言 二.开始 (一)获取推送URL链接 (二)爬取网页并提取图片保存 1.定义用于爬取推送图片的PictureSpider类 2.定义get_url_text()方法 3.定义sear ...

  5. 图片导入ppt后模糊_PPT设计,找图也是一种能力

    关注[新精英充电站]能力提升看得见! 除了拍摄的图片.公司产品的效果图等,有时还需要从网络中获取一些图片资源.对于PPT设计而言,会找图片也是一种能力的表现.高手往往能既快速又准确地找到高质量的配图. ...

  6. ubuntu下使用python将ppt转成图片_Ubuntu下使用Python实现游戏制作中的切分图片功能...

    本文实例讲述了Ubuntu下使用Python实现游戏制作中的切分图片功能.分享给大家供大家参考,具体如下: why 拿到一个人物行走的素材,要用TexturePacker打包.TexturePacke ...

  7. python ppt 图片_python ppt转图片

    # 1). 导入需要的模块(打开应用程序的模块) import win32com.client import os def ppt2png(filename, output_filename): &q ...

  8. python查找文字在图片中的位置_在ppt中如何用文字环绕图片,ppt用文字环绕图片的方法...

    PPT在工作时,是会经常运用到的,它可以更清晰的讲解一些事情,在工作中几乎没有一件事情是ppt无法解决的,因此PPT的作用也是非常大的,但是在ppt中如何用文字环绕图片呢?今天就来介绍下ppt用文字环 ...

  9. 【mmdetection小目标检测教程】三、使用sahi库切分高分辨率图片,一键生成coco格式数据集

    [mmdetection小目标检测教程]三.使用sahi库切分高分辨率图片,一键生成coco格式数据集 1.确认是否需要切分图像 2.子图切分 (1)安装sahi库 (2)基于sahi切图 本文我们将 ...

最新文章

  1. python3 判断ip有效性 是否是内网ip
  2. python编程100例头条-python爬虫演示:以爬取今日头条为例
  3. _extend用法总结
  4. 通过命令行使用 JAX-WS调用webservice
  5. 从变量到封装:一文带你为机器学习打下坚实的Python基础 By 机器之心2017年10月13日 10:43 本文整体梳理了 Python 的基本语法与使用方法,并重点介绍了对机器学习十分重要的且常
  6. Linux/Centos Tomcat 配置日志切分以及脚本自动清理
  7. 10个奇葩的代码注释,笑出声!
  8. es6 Promise.done(),Promise.finally()
  9. 理想汽车4月交付5539辆 累计交付51715辆
  10. 科蒂斯控制器故障代码_卡特挖掘机故障代码【收藏备用】
  11. VirtualBox中虚拟XP共享文件夹设置
  12. python--os模块
  13. 一文带你搞懂pandas中的时间处理(详细)
  14. 计算机怎么学要记笔记,留法十全大补汤 | 学姐告诉你在法国上课如何记笔记,复习,考试!...
  15. 【QT-版本】QT版本选择问题
  16. GameEntity(四)—— Ientity
  17. 数据库SQLServer的视图
  18. windows7装机必备软件及设置
  19. 神经性脚臭案例整理(六)
  20. 响应式布局+bootstra

热门文章

  1. css html 编写凌形图案
  2. 大龄程序员的前途令人担忧
  3. 安装Xp和Win7双系统方法(图文教程)
  4. JAVA+JDBC超级详解---从连接数据库到连接池
  5. P1008 [NOIP1998 普及组] 三连击 题解
  6. ElasticSearch(狂神说笔记)
  7. android ram rom测试工具,ROM与RAM的那点事,超详细解说
  8. 信息安全工程师学习笔记《第三章》
  9. 我们平常习惯讲的手机容量-运行内存(RAM)和机身内存(ROM)的理解
  10. 以STM32F103RCT6为例分析单片机的RAM以及ROM使用情况