Python实现pdf转word

Python实现pdf转word一 实验目标 通过利用 python 中的 pyinstaller 库和 PySimpleGUI 库 实现将 pdf 转为 word 的实际功能 二 实验准备 1 安装 pdf2docx 库 pip install pdf2docx 2 安装 PySimpleGUI 库 pip install PySimpleGUI 三 实验代码 from pdf2docx

大家好,我是讯享网,很高兴认识大家。

一、实验目标

通过利用python中的pyinstaller库和PySimpleGUI库,实现将pdf转为word的实际功能。

二、实验准备

1、安装pdf2docx库

pip install pdf2docx

讯享网

2、安装PySimpleGUI库

讯享网pip install PySimpleGUI

三、实验代码

from pdf2docx import Converter import PySimpleGUI as sg 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('DarkAmber') layout = [ [sg.Text('pdfToword', font=('微软雅黑', 12)), sg.Text('', key='filename', size=(50, 1), font=('微软雅黑', 10))], [sg.Output(size=(80, 10), font=('微软雅黑', 10))], [sg.FilesBrowse('选择文件', key='file', target='filename'), sg.Button('开始转换'), sg.Button('退出')]] # 创建窗口 window = sg.Window("张卧虎", layout, font=("微软雅黑", 15), default_element_size=(50, 1)) # 事件循环 while True: # 窗口的读取,有两个返回值(1.事件;2.值) event, values = window.read() print(event, values) if event == "开始转换": 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() main() 

四、部分代码解析

1、pdf转word代码主体部分

讯享网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

convert(doc_file,start,end)函数中

doc_file:转化完成后文件名

start:转化开始页面

end:转化结束页面

注意点:


讯享网

①若不给start,end参数则默认转化全篇

②对于不连续的页面,也可写作convert(doc_file , pages = [2,4,6])

2、图形化界面部分

sg.theme('default1') layout = [[sg.Text('pdfToword', font=('微软雅黑', 12)), sg.Text('', key='filename', size=(50, 1), font=('微软雅黑', 10))], [sg.Output(size=(80, 10), font=('微软雅黑', 10))], [sg.FilesBrowse('选择文件', key='file', target='filename'), sg.Button('开始转换'),sg.Button('退出')]] window = sg.Window("id", layout, font=("微软雅黑", 15), default_element_size=(50, 1))

theme表示主题,即图形化界面的主题颜色(sg.theme_list()可以查看所有可用主题)

3、实现多个文件转化

讯享网if event == "开始转换": 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处,通过“.”进行划分,判断是否为单个且pdf格式文件

②else if处,通过“;”划分,将所有文件的存储路径储存在一个数组中,利用循环来遍历数组,从而达到依次转化的目的

③else处,若传入非pdf文件则输出提示文字

五、结果

220220a570b445aea523fc3ea03f0c6f.png

 完结撒花!

 

小讯
上一篇 2025-01-27 23:03
下一篇 2025-04-05 20:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48398.html