前言:在这里并不是将PDF中的文字和图片转为相对应的PPT,只是简单的把PDF作为图片插入到PPT中!

 最终呈现的效果如下图:

python中pdf转cdf python中pdf转ppt_python中pdf转cdf

 

python中pdf转cdf python中pdf转ppt_pdf_02

 话不多说,直接开干!

第一步:先写出PDF转PPT的代码。

import os
import fitz
import pptx
from pptx.util import Inches
import PySimpleGUI as sg# 将 pysimplegui 命名成 sg
 
def pdf_to_img(pdf_path,ppt_name):
    doc = fitz.open(pdf_path) # 打开pdf
    img_dir = r'./'
    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))
    #创建PPT,并将图片存入PPT中
    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)
    for i in img_path:#这里写一个for循环把之前保存的图片再删掉
        os.remove(i)


第二步:写一个窗口页面,并将之前写好的程序放进去。

在python中有很多包可以制作窗口,像tkinter,wxPython,PyQT,PySimpleGUI等,在这里我使用了 PySimpleGUI制作窗口页面。

sg.theme('LightBlue2')#选择一个窗口主题,就是窗口的颜色样式
#制作窗口页面的主体部分
layout = [
    [sg.Text('PDF文件转化PPT文件',font=('微软雅黑',12))],
    [sg.FilesBrowse('选择文件',key='s_file',target='f_name',font=('微软雅黑',13)),sg.I('',key='f_name',font=('微软雅黑',12),size=(66,1),text_color='blue')],
    [sg.Output(size=(100,40),font=('宋体',10))],
    [sg.Button('开始转化'),sg.Button('退出程序')]

]

window = sg.Window('pdf-ppt',layout,font=('宋体',15),default_element_size=(50,10))#创建窗口

while True:
    event,values = window.read()
    print(event,values)
    if event == "开始转化":
        if values['s_file'].split(';')[0].split('.')[1] == 'pdf':#判断你所选文件是否为PDF文件
            print('文件个数:{}'.format(len(values['s_file'].split(';'))))#输出文件个数
            for f in values['s_file'].split(';'):
                base = os.path.basename(f)#获取转化前文件的绝对路径
                ppt_name = r'{}.ppt'.format(base.split('.')[0])#制作转化后PPT的名称
                pdf_to_img(f, ppt_name)#程序运行
                print('转化成功!')
                print(r'文件名称:{}'.format(ppt_name))
                s = os.path.abspath(ppt_name)#获取转化后文件的绝对路径并输出
                print(r'文件保存路径:{}'.format(s))
                print('\n')
        else:
            sg.Popup('文件格式错误,请选择文件后缀名为.pdf的文件!')
    if event in (None,'退出程序'):
        break
window.close()

至此,一个PDF转PPT的小程序就制作完成了。

第三步:用pyinstaller将此程序打包成一个应用程序方便使用。

首先是安装pyinstaller,你可以打开pycharm进行安装,如下图。

python中pdf转cdf python中pdf转ppt_绝对路径_03

 然后就是创建一个“纯净”的环境,也就是创建一个新项目,如下图:

python中pdf转cdf python中pdf转ppt_pdf_04

 之后在pycharm新的项目里的终端输入:pyinstaller  -F  你文件的名字

然后再敲回车就行。

分享就此结束,如果对代码有不懂的地方或者是我写错了地方可以随时私信我,大家一起进步!