6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写

一、界面的设计(Qt Designer)

6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写

代码:
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'pdf2jpg.ui'## Created by: PyQt5 UI code generator 5.15.0## WARNING: Any manual changes made to this file will be lost when pyuic5 is# run again.Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Dialog_main(object):def setupUi(self, Dialog_main):Dialog_main.setObjectName("Dialog_main")Dialog_main.resize(429, 112)Dialog_main.setMinimumSize(QtCore.QSize(429, 112))Dialog_main.setMaximumSize(QtCore.QSize(429, 112))icon = QtGui.QIcon()icon.addPixmap(QtGui.QPixmap("baby.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)Dialog_main.setWindowIcon(icon)self.pushButton_ok = QtWidgets.QPushButton(Dialog_main)self.pushButton_ok.setGeometry(QtCore.QRect(240, 80, 75, 23))self.pushButton_ok.setObjectName("pushButton_ok")self.pushButton_cancel = QtWidgets.QPushButton(Dialog_main)self.pushButton_cancel.setGeometry(QtCore.QRect(340, 80, 75, 23))self.pushButton_cancel.setObjectName("pushButton_cancel")self.lineEdit_file = QtWidgets.QLineEdit(Dialog_main)self.lineEdit_file.setGeometry(QtCore.QRect(130, 10, 241, 20))self.lineEdit_file.setObjectName("lineEdit_file")self.lineEdit_fold = QtWidgets.QLineEdit(Dialog_main)self.lineEdit_fold.setGeometry(QtCore.QRect(130, 40, 241, 20))self.lineEdit_fold.setObjectName("lineEdit_fold")self.label_file = QtWidgets.QLabel(Dialog_main)self.label_file.setGeometry(QtCore.QRect(10, 10, 111, 16))self.label_file.setObjectName("label_file")self.label_fold = QtWidgets.QLabel(Dialog_main)self.label_fold.setGeometry(QtCore.QRect(10, 40, 91, 16))self.label_fold.setObjectName("label_fold")self.pushButton_add = QtWidgets.QPushButton(Dialog_main)self.pushButton_add.setGeometry(QtCore.QRect(380, 10, 41, 23))self.pushButton_add.setObjectName("pushButton_add")self.pushButton_add2 = QtWidgets.QPushButton(Dialog_main)self.pushButton_add2.setGeometry(QtCore.QRect(380, 40, 41, 23))self.pushButton_add2.setObjectName("pushButton_add2")self.retranslateUi(Dialog_main)self.pushButton_cancel.clicked.connect(Dialog_main.close)QtCore.QMetaObject.connectSlotsByName(Dialog_main)def retranslateUi(self, Dialog_main):_translate = QtCore.QCoreApplication.translateDialog_main.setWindowTitle(_translate("Dialog_main", "pdf2jpg"))self.pushButton_ok.setText(_translate("Dialog_main", "OK"))self.pushButton_cancel.setText(_translate("Dialog_main", "Cancel"))self.label_file.setText(_translate("Dialog_main", "选择需转换的文件"))self.label_fold.setText(_translate("Dialog_main", "选择输出文件夹"))self.pushButton_add.setText(_translate("Dialog_main", "添加"))self.pushButton_add2.setText(_translate("Dialog_main", "添加"))
主程序代码:
from PyQt5 import QtWidgetsfrom pdf2jpg import Ui_Dialog_main # 导入ui文件转换后的py文件from PyQt5.QtWidgets import QFileDialogimport pandas as pdimport fitzfrom operator import itemgetterimport os,sysimport time#from saveFile import a_save_txtclass mywindow(QtWidgets.QWidget, Ui_Dialog_main):def__init__ (self):super(mywindow, self).__init__()self.setupUi(self)self.pushButton_add2.clicked.connect(self.write_folder)self.pushButton_add.clicked.connect(self.read_file)self.pushButton_ok.clicked.connect(self.process)def read_file(self):#选取文件filename, filetype =QFileDialog.getOpenFileName(self, "选取文件", "C:/", "Text Files(*.pdf)")#"All Files(*);print(filename, filetype)self.lineEdit_file.setText(filename)def write_folder(self):#选取文件夹foldername = QFileDialog.getExistingDirectory(self, "选取文件夹", "C:/")print(foldername)self.lineEdit_fold.setText(foldername)# 进行处理def process(self):try:#获取文件路径file_path = self.lineEdit_file.text()#取文件名fname=os.path.splitext(file_path)filename=os.path.split(fname[0])print(filename)print(filename[1])#获取文件夹路径folder_path = self.lineEdit_fold.text() "/" filename[1]sTime = time.time()pdfDoc = fitz.open(file_path)for pg in range(pdfDoc.pageCount):page = pdfDoc[pg]pix = page.getPixmap(alpha=False)# 默认是720*x尺寸if not os.path.exists(folder_path):os.makedirs(folder_path)pix.writePNG(folder_path'/''images_%s.jpg' % pg)# 将图片写入指定的文件夹内#读取文本## 读取文件#my_df = pd.read_csv(file_path, encoding = 'mbcs')# 中间可以进行对文件的任意操作# 进行csv输出#my_df.to_csv(folder_path'result.csv')eTime = time.time()s = eTime - sTimeprint('花费的时间为:%.2f秒' % (s))success_result = r'转换成功!'self.setWindowTitle(success_result)#打开成功后的文件夹os.startfile(folder_path)except:fail_result = r'转换失败!'self.setWindowTitle(fail_result)if __name__=="__main__":import sysapp=QtWidgets.QApplication(sys.argv)ui = mywindow()ui.show()sys.exit(app.exec_())
经测试可以通过
6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写

6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写

生成可执行文件 。
>pyinstaller -F -w pdf2jpg_server.py
6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写



6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写

此可执行文件有需要的可留言 。
【6 PyQt 5.0自学笔记pdf文件转jpg图片软件编写】完成后自动打开所在文件夹 。收工 。下一步接着完善 。

相关经验推荐