文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python实现pdf转word

2023-08-31 22:26

关注

一、实验目标

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

二、实验准备

安装pdf2docx库

pip install pdf2docx

安装PySimpleGUI库

pip install PySimpleGUI

三、实验代码

from pdf2docx import Converterimport PySimpleGUI as sgdef 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_filedef 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()

四、部分代码解析

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])

图形化界面部分

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()可以查看所有可用主题)

实现多个文件转化

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

 完结撒花!

 

来源地址:https://blog.csdn.net/Josepyth/article/details/126603643

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯