admin管理员组文章数量:1630192
利用python将PDF转为PPT(课件专用)
前言:课程中老师经常会将课件作为PDF发放而非PPT,而现有的PDF阅读器一般不支持添加修改等操作,所以显得十分麻烦,考虑将PDF转换为PPT格式,方便进行操作。
注意:这里并不是真正地将PDF转为PPT,而只是把PDF作为图片,插入到PPT中!
需要模块:
- fitz:
- pptx
直接使用pip包管理工具下载
pip install fitz
pip install python-pptx
代码整体思路:
- 将pdf抽出作为图片保存
- 将图片插入PPT中
代码如下:
import fitz
import pptx
from pptx.util import Inches
def img2pptx(img_path,ppt_name):
ppt = pptx.Presentation() # 生成ppt对象
for i in img_path:
layout = ppt.slide_layouts[6] # 定义一个 PPT 页面 插入图片,这里选择样式6
slide = ppt.slides.add_slide(layout)
image = slide.shapes.add_picture(
image_file=i,
left=Inches(0),
top=Inches(0),
width=Inches(10),
height=Inches(8)
)
#目前设置会撑满整张PPT,大小可自行调整
ppt.save(ppt_name)
def pdf2img(pdf_path, img_dir,ppt_name):
doc = fitz.open(pdf_path) # 打开pdf
img_path=[]
for page in doc: # 遍历pdf的每一页
zoom_x = 2.0 # 设置每页的水平缩放因子
zoom_y = 2.0 # 设置每页的垂直缩放因子
mat = fitz.Matrix(zoom_x, zoom_y)
pix = page.get_pixmap(matrix=mat)
pix.save(r"{}page-{}.png".format(img_dir, page.number)) # 保存
img_path.append(r"{}page-{}.png".format(img_dir, page.number))
img2pptx(img_path, ppt_name)
if __name__ == '__main__':
# pdf路径
pdf_path = r"./E04.pdf"
# 图片保存位置
img_dir = r"./"
#ppt名称
ppt_name="result.pptx"
# pdf转图片
pdf2img(pdf_path, img_dir,ppt_name)
使用(参数说明):
- pdf_path:PDF的路径
- img_dir:图片保存路径
- ppt_name:保存的ppt的名称
使用时直接修改pdf_path即可!
结果:
转换后效果如图所示:可能比例不大合适,但基本达到自己最初想要的效果!
改进:
可以看到转换后的比例并不是特别让人满意
可以自行调整图片比例来适应:
left=Inches(1.5),
top=Inches(0),
width=Inches(7),
height=Inches(7.5)
改为上面比例后,效果如下:
感觉会顺眼许多!
版权声明:本文标题:利用python将PDF转为PPT(课件专用) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729067927a1184743.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论