python代码:
mywindow.py
import pdfplumber #需要安装pdf包 pip3 install pdfplumber
import pandas as pd
import os
import time
import shutil
if os.path.isdir('处理结果'):
shutil.rmtree('处理结果')
os.makedirs('处理结果')
from PySide6 import QtWidgets
from PySide6.QtCore import QFileInfo
from PySide6.QtWidgets import QFileDialog,QMessageBox
from PDFto_txt import Ui_form
class mywindow(QtWidgets.QWidget,Ui_form):
def __init__(self):
#调用qt界面通用代码
super(mywindow,self).__init__()
self.setupUi(self)
#调用Qt信号与槽
self.pushButton.clicked.connect(self.shuruwenjianjia) #打开文件夹
self.pushButton_2.clicked.connect(self.pdfto_txt) ##pdf转txt
self.pushButton_3.clicked.connect(self.file_dkjg) #打开处理结果
self.pushButton_4.clicked.connect(self.pdfto_txtclose) # 退出按钮
self.pushButton_5.clicked.connect(self.pdfto_word) # pdf转word
self.pushButton_6.clicked.connect(self.pdfto_execl) # pdf转execl
# self.pushButton_7.clicked.connect(self.shuruwenjianjia)
# self.pushButton_8.clicked.connect(self.shuruwenjianjia)
# self.pushButton_9.clicked.connect(self.shuruwenjianjia)
# self.pushButton_10.clicked.connect(self.shuruwenjianjia)
#打开文件夹函数
def shuruwenjianjia(self):
global filename
filename,filetype=QFileDialog.getOpenFileName(self,"选择PDF文件","/","*.pdf")
print(str(filename)) #打印文件路径 包括名称和类型
self.lineEdit.setText(filename)
#打开处理结果
def file_dkjg(self):
import os
start_directory=('处理结果')
os.startfile(start_directory)
#pdf转换为txt
def pdfto_txt(self):
with pdfplumber.open(filename) as pdf:
content=''
#len(pdf.pages) pdf文档页数
for i in range(len(pdf.pages)):
page=pdf.pages[i] #读取pdf文档 i+1页
#page.extract_text() 函数 读取文本内容
page_content='\n'.join(page.extract_text().split('\n')[:-1]) #去掉文档最下面的页码
content=content+page_content
with open("处理结果\pdf_txt.txt",'w') as f:
f.write(content)
print('处理完成')
self.label_2.setText("pdf转换txt处理完成")
def pdfto_word(self):
with pdfplumber.open(filename) as pdf:
content=''
for i in range(len(pdf.pages)):
page=pdf.pages[i]
page_content='\n'.join(page.extract_text().split('\n')[:-1]) #去掉文档最下面的页码
content=content+page_content
with open("处理结果\pdf_word.docx",'w') as f:
f.write(content)
print('处理完成')
self.label_2.setText("pdf转word处理完成")
def pdfto_execl(self):
with pdfplumber.open(filename) as pdf:
content=''
for i in range(len(pdf.pages)):
page=pdf.pages[i]
page_content='\n'.join(page.extract_text().split('\n')[:-1])
content=content+page_content
with open("处理结果\pdf_execl.xlsx",'w') as f:
f.write(content)
print("处理完成")
self.label_2.setText("pdf转execl处理完成")
#退出
def pdfto_txtclose(self):
self.close()
if __name__ == '__main__':
import sys
app=QtWidgets.QApplication(sys.argv)
ui=mywindow()
ui.show()
sys.exit(app.exec_())
PDFto_txt.py代码:
from PySide6 import QtCore, QtGui,QtWidgets
class Ui_form(object):
def setupUi(self,Form):
Form.setObjectName("ui")
Form.resize(800,600)
Form.setFocusPolicy(QtCore.Qt.NoFocus)
self.groupBox = QtWidgets.QGroupBox(Form)
self.groupBox.setGeometry(QtCore.QRect(80,20,611,455))
self.groupBox.setObjectName("groupBox")
self.pushButton = QtWidgets.QPushButton(self.groupBox)
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.groupBox)
self.label.setGeometry(QtCore.QRect(50,140,80,30))
self.label.setObjectName("label")
self.lineEdit=QtWidgets.QLineEdit(self.groupBox)
self.lineEdit.setGeometry(QtCore.QRect(130,140,450,30))
self.lineEdit.setObjectName("lineEdit")
self.pushButton_2=QtWidgets.QPushButton(self.groupBox)
self.pushButton_2.setGeometry(QtCore.QRect(130,200,90,40))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3=QtWidgets.QPushButton(self.groupBox)
self.pushButton_3.setGeometry(QtCore.QRect(130,280,90,40))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4=QtWidgets.QPushButton(self.groupBox)
self.pushButton_4.setGeometry(QtCore.QRect(430,280,90,40))
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5=QtWidgets.QPushButton(self.groupBox)
self.pushButton_5.setGeometry(QtCore.QRect(280,200,90,40))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6=QtWidgets.QPushButton(self.groupBox)
self.pushButton_6.setGeometry(QtCore.QRect(430,200,90,40))
self.pushButton_6.setObjectName("pushButton_6")
self.label_2=QtWidgets.QLabel(self.groupBox)
self.label_2.setGeometry(QtCore.QRect(70,30,520,40))
self.label_2.setText("")
self.label_2.setObjectName("label_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self,Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "PDF转换工具"))
self.groupBox.setTitle(_translate("Form","主菜单"))
self.pushButton.setText(_translate("Form", "选择文件(*.pdf *.PDF)"))
self.label.setText(_translate("Form", "待处理文件"))
self.pushButton_2.setText(_translate("Form", "pdf转txt"))
self.pushButton_3.setText(_translate("Form", "打开处理结果"))
self.pushButton_4.setText(_translate("Form", "退出"))
self.pushButton_5.setText(_translate("Form", "pdf转word"))
self.pushButton_6.setText(_translate("Form", "pdf转execl"))
self.label_2.setText(_translate("Form", "欢迎使用PDF转换工具"))