1 Star 0 Fork 1

fly627600815/ppt2png

forked from 赵权/ppt2png 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ppt2png.py 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
弱密码 提交于 2020-07-03 00:16 . Update ppt2png.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
#!/usr/bin/env python2
' 一个将PPT转化为图片,长图 '
__author__ = '源码来自于公众号:谭某人,本项目又 fork 自:https://github.com/tss12/ppt2png,最后编辑人:赵全,微信:quanllee,如有侵权欢迎提 issue 或微信'
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]) #所有图片拼接成长图
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xifly/ppt2png.git
[email protected]:xifly/ppt2png.git
xifly
ppt2png
ppt2png
master

搜索帮助