栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用python做一个pdf转图片的可执行exe程序

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用python做一个pdf转图片的可执行exe程序

使用python做一个pdf转图片的可执行exe 1.安装环境

python3
模块:PymuPDF,pyinstaller

import fitz
import os
import tkinter


def pyMuPDF_fitz(pdfPath, imagePath, img_type='jpg'):
    """
     pdf转图片
    :param pdfPath: pdf绝对路径
    :param imagePath: 转化为图片的目录-绝对路径
    :param img_type: 图片类型,默认jpg
    """
    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = int(0)
        zoom_x = 5  
        zoom_y = 5
        mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate) #设置图片大小倾斜
        pix = page.get_pixmap(matrix=mat, alpha=False)

        if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在
            os.makedirs(imagePath)  # 若图片文件夹不存在就创建

        pix.save(imagePath + '/' + 'images_%s.%s' % (pg, img_type))  # 将图片写入指定的文件夹内

"""
以下gui代码
"""
def covert_format(pdfPath, imagePath, img_format, text3):
 	"""
 	点击确定调用函数
 	先清空Text输入框再写入
 	"""
    if not os.path.isfile(pdfPath):
        text3.delete(1.0, tkinter.END)
        text3.insert('insert', 'pdf文件不存在,需重新输入')
    elif not os.path.exists(imagePath):
        text3.delete(1.0, tkinter.END)
        text3.insert('insert', '图片路径不存在,需重新输入')
    else:
        try:
            pyMuPDF_fitz(pdfPath, imagePath, img_format)
            text3.delete(1.0, tkinter.END)
            text3.insert('insert', '成功')
            # text.insert(index,string)  index = x.y的形式,x表示行,y表示列
            print('成功')
        except:
            print('失败,请重新再来')
            text3.delete(1.0, tkinter.END)
            text3.insert('insert', '失败,请重新再来')


def PdfGui():
	"""
	gui界面
	"""
    window = tkinter.Tk()
    window.title('Pdf转图片')
    window.geometry('700x400')

    # 单选框框架
    frame_radio = tkinter.frame(window, height=6)
    frame_radio.grid(row=5, column=0, ipadx=50, ipady=10, padx=20)
    img_type = tkinter.StringVar()
    img_type.set('jpg')
    img_types = [('jpg', 'jpg'), ('png', 'png'), ('jpeg', 'jpeg'), ('tiff', 'tiff'), ('gif', 'gif')]
    for text, value in img_types:
        radio = tkinter.Radiobutton(frame_radio, text=text, value=value, variable=img_type)
        column = img_types.index((text, value))
        radio.grid(row=0, column=column)
    # 单选框结束

    # 输入框框架
    frame_label = tkinter.frame(window)
    frame_label.grid(row=7, column=0, ipadx=50, ipady=10, padx=20)
    label1 = tkinter.Label(frame_label, text='输入pdf路径:', font=(None, 16))  # width,height,bg
    label2 = tkinter.Label(frame_label, text='输入img路径:', font=(None, 16))
    label1.grid(row=7, column=0, sticky=tkinter.SE)
    label2.grid(row=8, column=0, sticky=tkinter.SE)
    text1 = tkinter.Entry(frame_label, show=None, width=55, borderwidth=2, relief=tkinter.GROOVE, bd=2)
    # bd边框  relief边框格式  width框长度
    text2 = tkinter.Entry(frame_label, show=None, width=55, borderwidth=2, relief=tkinter.GROOVE, bd=2)
    text1.grid(row=7, column=1, pady=2, ipadx=3, ipady=2)
    # row,column行列  padx,pady框外样式内  ipadx,ipady框内
    text2.grid(row=8, column=1, pady=2, ipadx=3, ipady=2)
    button1 = tkinter.Button(frame_label, text='确定', font=(None, 19),
                             command=lambda: covert_format(text1.get(), text2.get(), img_type.get(), text3))
    button1.grid(column=1)
    # 输入框结束

    text3 = tkinter.Text(window, height=2)
    text3.grid()
    window.mainloop()


PdfGui()

运行起来样子

输入pdf路径点击确定会判断是否是一个文件,不是会提示错误,
输入img路径点击确定会判断是否存在这个目录,不是会提示错误。
注意:所有的路径前面不能带有空格,这个没做优化,可以自行加

2.打包成exe可执行文件

接下来使用pyinstaller打包成一个可执行exe文件,方便使用还可以在其他没有python环境的window上直接运行

pyinstaller -n pdfto_img -F -i test.ico test.py --noconsole

-n 重命名
-F 打包成一个exe文件(window10下打包)
-i 自定义图标
–noconsole 去掉cmd框

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号