from pdf2docx import Converter
import PySimpleGUI as sg
import datetime
curr_time=datetime.datetime.now()
time = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')
time1 = datetime.datetime.strftime(curr_time, '%Y年%m月%d日')
def pdf2word(file_path):
file_name = file_path.split('.')[0]
doc_file = f'{file_name}.docx'
p2w = Converter(file_path)
p2w.convert(doc_file, start=0, end=None)
p2w.close()
return doc_file
def main():
# 选择主题
#sg.theme('BlueMono')
# 设置窗口
layout = [
[sg.Text('你选择的文件:', font=("微软雅黑", 10)),
sg.Text('', key='filename', size=(75, 1), font=('微软雅黑 ', 10))],
[sg.Text('文件转换记录', font=('微软雅黑', 10))],
[sg.Output(size=(80, 10), font=('微软雅黑', 10))],
[sg.FilesBrowse('请选择要转换的PDF文件', key='file', target='filename'), sg.Button('开始转换成word文档'), sg.Button('退 出')]]
# 创建窗口
window = sg.Window("欢迎使用PDFtoWord小工具 by琴棋书画 今天是:{}".format(time1), layout, font=("微软雅黑", 12), default_element_size=(50, 1),icon=('图标.png'))
# 事件循环
while True:
# 窗口的读取,有两个返回值(1.事件;2.值)
event, values = window.read()
print(event, values)
if event == "开始转换成word文档":
# 单个文件
if values['file'] and values['file'].split('.')[1] == 'pdf':
filename = pdf2word(values['file'])
print('文件个数 :1')
print('n' + '转换成功!' + 'n')
print('文件保存位置:', filename)
# 多个文件
elif values['file'] and values['file'].split(';')[0].split('.')[1] == 'pdf':
print('文件个数 :{}'.format(len(values['file'].split(';'))))
for f in values['file'].split(';'):
filename = pdf2word(f)
print('n' + '转换成功!' + 'n')
print('文件保存位置:', filename)
else:
print('请选择pdf格式的文件哦!')
if event in (None, '退 出'):
break
window.close()
if __name__=='__main__':
main()