PDF文件转换为Word文件:
from pdf2docx import Converter
import os
import tkinter as tk
import tkinter.messagebox
from tkinter import filedialog,dialog
import threading #线程
#设置GUI
Ppath='NA'
opath='NA'
def pdf():
global Ppath
Ppath=filedialog.askdirectory()
en1.insert('insert',Ppath)
print(Ppath)
def outf():
global opath
opath=filedialog.askdirectory()
en3.insert('insert',opath)
def thread_it(func, *args):
'''将函数打包进线程'''
# 创建
t = threading.Thread(target=func, args=args)
# 守护 !!!
t.setDaemon(True)
# 启动
t.start()
# 阻塞--卡死界面!
def PTW():
try: #用于输出错误信息
global Ppath,opath,tel
Ppath=en1.get()
opath=en3.get() #获取输出路径
print(Ppath,opath)
filename=os.listdir(Ppath)
for name in filename:
print(name)
te1.insert('insert',name)
te1.insert('insert','\n')
te1.see('end')
pdfpath=Ppath+'\\'+name
wordpath=opath+'\\'+name[1:-4]+'.docx'
cv = Converter(pdfpath)
cv.convert(wordpath)
cv.close()
#保存输出文件,弹窗提示运行完成
tk.messagebox.showinfo('提示','运行完成')
#若运行出错,输出报错信息
except Exception as e: te1.insert('insert',e)
window=tk.Tk()
window.geometry('800x500')
window.title('PDF转Word')
bu2=tk.Button(window,text='点击选择PDF文件夹:',width=25,command=pdf)
bu2.grid(row=0,column=0)
en1=tk.Entry(window,width=70)
en1.grid(row=0,column=1)
bu3=tk.Button(window,text='点击选择结果输出文件夹:',width=25,command=outf)
bu3.grid(row=2,column=0)
en3=tk.Entry(window,width=70)
en3.grid(row=2,column=1)
te1=tk.Text(window)
te1.grid(row=4,column=1)
bu1=tk.Button(window,text='运行程序',command=lambda:thread_it(PTW))
bu1.grid(row=3,column=1)
lab3=tk.Label(window,text='程序运行信息:')
lab3.grid(row=4,column=0)
window.mainloop()