python实现的pdf转word,text,execl

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转换工具"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生梦若

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值