pdf2ppt

使用python快速轻便的将pdf转换成ppt文件

引用https://github.com/phasedOut/pdf2pptx 做的jpg合并成ppt

引用https://www.cnblogs.com/loveprogramme/p/11247037.html 做的pdf切割成jpg

github地址:https://github.com/Derekchen147/pdf2ppt

目录

  • jpgs:保存分割出来的jpg
  • result:保存最终生成的ppt
  • source_files:保存想要转变成ppt格式的pdf(会历遍这个文件夹里面所有的pdf,要改几个放几个)
  • requirements.txt:保存运行需要的包

使用方法

将requirements.txt里面的包都下载下来,可以用

pip install -r requirements.txt -i https://pypi.douban.com/simple

下载全部

把想要改成ppt的pdf都放到source_files里面,然后直接

python pdf2ppt.py

代码

代码分为两部分
一部分将source_files文件夹中的每一个pdf文件每一个切分成jpg并保存在jpgs文件夹里面
另一部分将jpgs文件夹里面的jpg图片读取出来并合并成ppt

import fitz
import os
import time
from tqdm import tqdmimport os
import datetime
from PIL import Imagefrom pptx import Presentation
from pptx.util import Inches, Ptfor filename in os.listdir('source_files/'):# 将pdf一张张切割成jpgtimestamp = time.time()print('切割pdf为jpg...')full_path = "./source_files/%s" % filename            # 拼接,得到PDF文件的绝对路径print(full_path)doc = fitz.open(full_path)  # 打开一个PDF文件,doc为Document类型,是一个包含每一页PDF文件的列表rotate = int(0)  # 设置图片的旋转角度,如果图片方向不对的话改这个zoom_x = 2.0  # 设置图片相对于PDF文件在X轴上的缩放比例zoom_y = 2.0  # 设置图片相对于PDF文件在Y轴上的缩放比例trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate) #旋转图片,如果图片方向不对的话改前面rotate的旋转角度print("%s开始转换..." % filename)if doc.pageCount > 1:  # 获取PDF的页数for pg in tqdm(range(doc.pageCount)):page = doc[pg]  # 获得第pg页pm = page.getPixmap(matrix=trans, alpha=False)  # 将其转化为光栅文件(位数)new_full_name = filename.split(".")[0]  # 保证输出的文件名不变if not os.path.exists('./jpgs/%s' % new_full_name):os.mkdir('./jpgs/%s' % new_full_name)pm.writeImage("./jpgs/%s/%s-%s.jpg" % (new_full_name, new_full_name, pg))  # 将其输入为相应的图片格式,可以为位图,也可以为矢量图# 我本来想输出为jpg文件,但是在网页中都是png格式(即调用writePNG),再转换成别的图像文件前,最好查一下是否支持else:page = doc[0]pm = page.getPixmap(matrix=trans, alpha=False)new_full_name = full_path.split(".")[0]pm.writeImage("%s.jpg" % new_full_name)print("%s转换jpg完成!" % filename)print('耗时:', time.time() - timestamp, 's')print('\n\n')

接下来将分割好的jpg文件读取出来并且合并成ppt。可以在这里改ppt需要生成的大小,默认是16*9

# 将分割好的jpg图片整合到ppttimestamp = time.time()print('整合jpg为ppt...')# 将filename改成不带格式名字的str,如file.pdf则filename = filefilename = filename.split(".")[0]  # jpg保存的地址jpg_path = './jpgs/%s' % filenamepages = os.listdir(jpg_path)prs = Presentation()# 在这里修改ppt长宽格式。默认是16*9prs.slide_width = Inches(16)prs.slide_height = Inches(9)for index, page in enumerate(tqdm(pages)):# 得到单张jpg图片的地址jpg_file = "./jpgs/%s/%s-%d.jpg" % (filename,filename,index)# 获取jpg文件的长宽image = Image.open(jpg_file)height = image.heightwidth = image.width# #Rotate 270 degrees if horizontal# if height > width:#     adjusted = image.rotate(270, expand=True)#     adjusted.save(jpg_file)# 设置ppt的slidetitle_slide_layout = prs.slide_layouts[0]slide = prs.slides.add_slide(title_slide_layout)# 将图片插入slide中。# left和top表示图片与slide边框的距离,默认为0# height=prs.slide_height, width=prs.slide_width调整图片大小,默认塞满整个slideleft = top = 0slide.shapes.add_picture(jpg_file, left, top, height=prs.slide_height, width=prs.slide_width)prs.save('result/%s.pptx' % filename)print("成功保存ppt文件 %s.pptx", filename)print('耗时:', time.time() - timestamp, 's')print('\n\n')

Python纯代码pdf批量快速转换成ppt相关推荐

  1. PDF怎么快速转换成PPT格式?一分钟教你搞定

    PDF是一种非常流行的电子文档格式,但在某些情况下,您可能需要将PDF文件转换为PPT格式,以便更好地演示或编辑.在本文中,我将向您展示如何快速将PDF转换为PPT,只需几个简单的步骤即可完成. 步骤 ...

  2. html文件批量快速转换成JSP文件

    html文件批量快速转换成JSP文件 一.新建一个Web项目,把准备好的xxx.html(1个或多个)粘贴到项目的WebRoot文件夹或WebContent\WEB-INF\jsps文件夹(jsps这 ...

  3. 视频AVI如何批量快速转换成MP4格式

    可能现在大部分人拍摄或是下载的视频都是MP4格式的,但其实视频的格式有非常多种.最近我们公司的小王就有个困扰,他的客户给了他一些AVI格式的视频,他却打不开了不知道怎么处理.其实AVI是将语音和影像同 ...

  4. 怎么把PDF格式文件转换成PPT格式

    我们经常会遇到不同格式转换的问题,如怎么办PDF格式文件转换成PPT格式,往往急于找不到有效的方法,事实上,要把PDF文件转换成PPT是非常简单的工作.下面小编就为大家分享一个最新最有效的办法.希望能 ...

  5. PDF如何在线转换成PPT呢?

    将PDF转换成PPT是工作场所经常使用的功能.因为很多人在办公过程中收到的都是PDF格式的文档,而PDF格式无法修改,就需要把现有的PDF格式转换成PPT格式.其实PDF转换成PPT的方法有很多,大家 ...

  6. 将pdf有效的转换成ppt的方法

    网络上各种格式转换工具对PDF文本的识别各有缺陷,有的仅能对纯文本有效识别,对图形和表格却无能为例;有的文本经过识别后生成的版面乱七八糟,还得重新排版.不同格式文本怎么转变成PPT文件格式 . 1.安 ...

  7. PDF在线免费转换成PPT怎么操作?

    PDF在线转换成PPT怎么做?今天小编分享一个方法给大家,不需要下载安装软件,手机上也能用,甚至转换小文件都不需要注册登录就可以每天免费完整转换,对于平时使用频率不高的小伙伴来说已经足够了,一起看看吧 ...

  8. 【方法】想把PDF文档转换成PPT,如何操作?

    很多小伙伴在工作中,会使用PDF或者PPT来展示内容.那如果需要把PDF转换成PPT,要如何操作呢? 我们知道,PPT转换成PDF很容易操作,只需通过PPT的[导出]选项,就可以直接转换成PDF:还可 ...

  9. PDF文件怎么转换成PPT

    在日常办公中大家都会发现PDF文件目前是比较常见的一种文件,有的时候大家会需要将PDF转换成PPT为了去更好的演示,毕竟PPT文件在演示方面具有着较好的特点,那如何将PDF文件转换成PPT文件呢,今天 ...

  10. PDF文件在线转换成PPT

    有多少人做过PDF文件的转换,还是PDF在线转换成PPT的转换,不用说转换成PPT了,连最基本的转换都没有做过吧.PDF文件支持多种文件之间的转换,如果你连PDF怎么转换成别的文件你都不了解,你的领导 ...

最新文章

  1. RecyclerView横向滑动与ViewPager冲突问题
  2. 逆矩阵 与行列式的关系
  3. Json在线格式化站点
  4. 【ArcGIS风暴】ArcGIS中国地表覆盖数据GlobeLand30预处理(批量投影、拼接、掩膜提取)附成品下载
  5. 深度学习之Batch Normalization
  6. android异步任务更新进度条,Android的AsyncTask异步任务浅析
  7. private public php,[php]private public protected 三者区别
  8. 16.Linux 高性能服务器编程 --- 服务器调制,调试和测试
  9. 编译原理完整学习笔记(八):目标代码生成
  10. 园林景观cad_9套CAD平面设计素材图,上千个绘图模板随意用,全部打包带走
  11. 通过身份证地址或家庭地址获取行政区划代码
  12. matlab地震频谱分析,《基于MATLAB的地震数据的分析》.doc
  13. 账号密码都正确,使用jdbc连接远程服务器端mysql数据库报错:Access denied for user ‘root‘@‘DESKTOP-KJ79‘ (using password: YES)
  14. python #hsv空间中Hue色度/色调在色相环上的角#冷暖色调 在色相环上的范围
  15. 欢迎使用Markdown编辑器
  16. doodoo.js快速入门教程
  17. 酷狗歌曲赏析评论覃瑞2
  18. 数睿数据深度 | 中国软件网对话数睿数据总裁刘超:深挖数据驱动、企业级无代码
  19. Spark 调优技巧总结
  20. 可扩展区块链的墨客实践——硅谷陈小虎

热门文章

  1. DBA:这有一份对接NBU备份故障排除指南,请查收!
  2. OCR身份证识别免费试用,附带Java代码
  3. 测试用例经典练习之淘宝app购物车测试用例
  4. gbase 连接数据库
  5. java接口自动化测试
  6. 计算机科学与技术专业实训手册,计算机专业实习工作手册.doc
  7. paddlehub 使用体验-视频抠图_乘风破浪的姐姐_人美路子野 2020-08-13
  8. 用户故事与敏捷方法—用户故事验收测试
  9. 《Go程序设计语言》- 第12章:反射
  10. 昆仑通态复制的程序可以用吗_昆仑通态专题(十二):MCGS嵌入版组态软件的安全管理...