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

1.安装环境

python3
模块:PymuPDF,pyinstaller

import fitz
import os
import tkinterdef 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 = 5mat = 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,bglabel2 = 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框

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

  1. GUI实战|Python做一个文档图片提取软件

    大家好,本文将进一步讲解如何用Python提取PDF与Word中图片,并结合之前讲解过的GUI框架PysimpleGUI,做一个多文件图片提取软件,效果如下: 本文主要将分为以下部分讲解: PDF.W ...

  2. 用python做一个简单的图片浏览器竟如此简单

    用了106行代码就做了一个图片浏览器,python真的太强大了.废话少说,看看效果先! 106行代码中还有不少代码是美化用的,真正功能的代码就没几句了.还是说说功能吧: 1. 打开文件夹,并只打开特定 ...

  3. 如何用python做一个会聊天的女朋友_戏精程序员,用python开发了一个女朋友,天天秀恩爱...

    很多人都知道,程序员大部分都是单身狗,然而,无奈Python实在太强大,居然可以用来开发一个女朋友出来. 其实,这个女朋友类似很多视频中,那些假装自己有女朋友或男朋友的人一样,也是在假装哦,但是程序员 ...

  4. python画哆啦a梦图片_80行代码!用Python做一个哆来A梦分身

    原标题:80行代码!用Python做一个哆来A梦分身 对于分身术,大家想必都或多或少的从<火影忍者>的动漫上看到过,炫酷的影分身场面,每每看到都觉得非常过瘾. 今天, 小编其实是蓝胖子的铁 ...

  5. 用Python做一个“以图搜番“的应用程序,再也不用愁动漫图片的出处了!

    文章目录 前言 PyQt5界面设计 使用Qt Designer绘制界面 视频部件插入小技巧 解码器下载 功能实现 trace.moe API介绍与视频 使用Nuitka打包成exe文件 前言 喜欢看动 ...

  6. python可以做动漫吗_用Python做一个以图搜番的应用程序,再也不用愁动漫图片的出处了!...

    前言 喜欢看动漫的朋友们大概都能体会到一个难受的事情,就是在论坛或者群聊里面看到一张动漫截图,很想知道它的出处,但百度搜了一圈却也没有一个可靠结果,就很郁闷.今天就来带大家用Python做一个简单的& ...

  7. python画圣诞老人图片_来得瑟一下!用Python做一个缩放自如的圣诞老人

    原标题:来得瑟一下!用Python做一个缩放自如的圣诞老人 圣诞节又要到了,虽说我们中国人不提倡过西方的节日, 但是商家们还是很喜欢的,估计有对象的男孩纸女孩纸们也很喜欢吧. 今天的主题是为大家展示如 ...

  8. Python做一个Kindle电子书下载助手,真香!

    哈喽,大家好,我是菜鸟哥! 大家有没有想过把亚马逊网站上的Kindle电子书下载到自己的电脑上? 今天分享的项目可以帮大家实现这一目的.该项目用Python开发,简单.好用.开源. 下面分享下项目的使 ...

  9. 利用Python做一个漂亮小姐姐词云跳舞视频

    最近不少小伙伴在学 Python,想找个好玩的练手项目. 那今天分享一个,简单,适合新手的 Python 小项目. 以下是具体项目: 本文将以哔哩哔哩–乘风破浪视频为例,you-get下载视频. 同时 ...

最新文章

  1. java equals比较_Java中equals()和==的比较
  2. crosstool-ng 编译交叉工具链的常见错误及解决办法
  3. 62. Unique Paths
  4. 大于2的质数判断以及范围质数查找
  5. Volley 源码解析之网络请求
  6. 2020年中国餐饮配送机器人行业研究报告
  7. 多态计算器的开发 c# 1614095334
  8. Java Main Differences between HashMap HashTable and ConcurrentHashMap
  9. python字符串转为ascii码_Python转义字符及用法
  10. unity 入门学习之(一)创建基本的3D游戏场景
  11. CAD 2014 删除 Autodesk 360
  12. 药品数据查询系统工具(非付费官网50个)
  13. vue-router—12全局钩子函数
  14. DruidDataSource详解部分(一)
  15. 【目标检测】《DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection》论文阅读笔记
  16. outlook中打不开超链接
  17. OBS直播时编码器、码率控制器、分辨率帧率是什么以及如何向第三方推流
  18. 知乎日报APP:API接口分析
  19. 删除Management Data Warehouse (MDW) job失败
  20. 第二十六讲 有限域基础

热门文章

  1. (私人收藏)清新文艺唯美PPT模板
  2. 安全发布对象-发布与逸出
  3. CCER上市公司实际控制人数据集(1991-2018年)
  4. 使用dom解析xml
  5. css常用中文字体的英文名称写法
  6. 别开玩笑了!特种兵式旅游,胆小勿进!
  7. java中什么是重写(举例说明)
  8. 专科学计算机真的没用吗,为什么有人说专科生不受人待见?专科生真的没有出路吗?...
  9. 微信小程序 -- 通知消息横向滚动 -- 无缝连接1
  10. CAD制图时怎么对比图纸文件的不同呢?