1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        驚呆同事的自動化小工具來了!Python 批量將 PDF 轉(zhuǎn) Word

        共 5835字,需瀏覽 12分鐘

         ·

        2022-08-26 11:49

        作者:Cherish
        來源:https://www.jianshu.com/p/4837343451fe
        公眾號后臺回復:「Python批量將pdf轉(zhuǎn)word」,即可獲取本文完整數(shù)據(jù)。
        本文為讀者投稿

        本期視頻內(nèi)容:驚呆同事的自動化小工具來了!Python 批量將 PDF 轉(zhuǎn) Word

        無論在工作還是學習中,大家都會遇到一個問題 "將 PDF 中的內(nèi)容(文本和圖片)轉(zhuǎn)換為 Word 的格式" ,也可以說從只讀轉(zhuǎn)換成可編輯的格式。當然網(wǎng)上有很多工具可以實現(xiàn),但大多數(shù)都是收費的。

        那今天的分享就是通過利用 Python 實現(xiàn)批量將 PDF 轉(zhuǎn)換成 Word 并做成一個桌面小工具。

        好處一方面是 Python 有免費的開源庫可供我們使用;另一方面可以根據(jù)我們需求靈活定制功能,最后工具可以重復使用,即使你的同事電腦沒有 Python 開發(fā)環(huán)境,也可以輕松使用。

        一、實現(xiàn)效果


        二、環(huán)境準備

        2.1 pdf 轉(zhuǎn) word

        實現(xiàn)這個功能,主要使用的是 pdf2docx 這個庫,也是最推薦的。

        只要是標準 PDF 文檔,里面的圖片和表格都可以保留格式,要注意的是 Python 版本必須是 3.6 或以上,本文使用的是 Python 3.8。安裝命令如下:

        pip install pdf2docx

        2.2 繪制圖形用戶界面

        Python 有許多 GUI 工具包可供選擇,本文使用 PySimpleGUI,使用起來比較簡單,對于我們這個需求足夠用。更多可參考:PySimpleGUI 文檔[1],有非常多的示例,本文不做過多拓展。使用之前也需要安裝一下,注意大小寫。

        pip install PySimpleGUI 

        2.3 py 程序打包 exe

        pyinstaller 是一個非常簡單的打包 Python 的 py 文件的庫,一條命令即可實現(xiàn)打包。更多可參考官方文檔:pyinstaller[2]

        pip install pyinstaller

        三、代碼實現(xiàn)

        3.1 PDF 轉(zhuǎn) Word 函數(shù)

        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

        3.2 設(shè)計圖形用戶界面

        def main():
            # 選擇主題
            sg.theme('LightBlue5')
            # 設(shè)置窗口
            layout = [
                [sg.Text('pdfToword', font=('微軟雅黑'12)),
                 sg.Text('', key='filename', size=(501), font=('微軟雅黑'10), text_color='blue')],
                [sg.Output(size=(8010), font=('微軟雅黑'10))],
                [sg.FilesBrowse('選擇文件', key='file', target='filename'), sg.Button('開始轉(zhuǎn)換'), sg.Button('退出')]]
            # 創(chuàng)建窗口
            window = sg.Window("Python與數(shù)據(jù)分析_青青", layout, font=("微軟雅黑"15), default_element_size=(501))

        3.3 實現(xiàn)單個文件和批量文件操作

         # 事件循環(huán)
            while True:
                # 窗口的讀取,有兩個返回值(1.事件;2.值)
                event, values = window.read()
                print(event, values)

                if event == "開始轉(zhuǎn)換":
                    # 單個文件
                    if values['file'and values['file'].split('.')[1] == 'pdf':
                        filename = pdf2word(values['file'])
                        print('文件個數(shù) :1')
                        print('\n' + '轉(zhuǎn)換成功!' + '\n')
                        print('文件保存位置:', filename)
                    # 多個文件
                    elif values['file'and values['file'].split(';')[0].split('.')[1] == 'pdf':
                        print('文件個數(shù) :{}'.format(len(values['file'].split(';'))))
                        for f in values['file'].split(';'):
                            filename = pdf2word(f)
                            print('\n' + '轉(zhuǎn)換成功!' + '\n')
                            print('文件保存位置:', filename)
                    else:
                        print('請選擇pdf格式的文件哦!')
                if event in (None, '退出'):
                    break

            window.close()

        3.4 調(diào)用主要功能函數(shù)

        main()

        四、打包代碼

        打開 DOS 窗口并切換到 demo.py(這里我新建了文件夾,放到了D盤)文件所在的目錄,注意路徑中不要有中文:

        pyinstaller 指令的常見可選參數(shù):

        • -i 給應用程序添加圖標

        • -F 指定打包后只生成一個exe格式的文件

        • -D –onedir 創(chuàng)建一個目錄,包含exe文件,但會依賴很多文件(默認選項)

        • -c –console, –nowindowed 使用控制臺,無界面(默認)

        • -w –windowed, –noconsole 使用窗口,無控制臺

        • -p 添加搜索路徑

        在當前的目錄下,將會生成兩個文件夾:build 和 dist。

        dist 文件夾里就是所有可執(zhí)行的 exe 文件,發(fā)送快捷方式到桌面,點擊 exe 即可運行。

        五、解決 exe 文件過大問題【可略】

        如果生成 exe 之后,若發(fā)現(xiàn)程序異常的慢,可檢查導包代碼,盡量不要出現(xiàn)以下寫法,否則每次啟動程序,都會導入大量函數(shù)占用大量時間。

        from ··· import * 
        改成 import 包名 

        搭建干凈的 Python 虛擬環(huán)境可參考:太強了!Python 開發(fā)桌面小工具,讓代碼替我們干重復的工作!里面介紹了什么是虛擬環(huán)境,以及如何搭建。

        好了,到這里本期分享的內(nèi)容就結(jié)束了,其主要目的是為大家提高工作效率,為辦公自動化提供一種思路。歡迎大家在評論區(qū)與我們一起交流討論。

        擴展鏈接

        [1] PySimpleGUI 文檔 https://github.com/PySimpleGUI/PySimpleGUI
        [2] pyinstaller https://pyinstaller.readthedocs.io/en/latest/usage.html

        公眾號后臺回復:「Python批量將pdf轉(zhuǎn)word」,即可獲取本文完整數(shù)據(jù)。

        推薦閱讀

        建議收藏!Python 讀取千萬級數(shù)據(jù)自動寫入 MySQL 數(shù)據(jù)庫

        用 Python 批量提取 PDF 的圖片,并存儲到指定文件夾

        用 Python 批量提取 PDF 的表格數(shù)據(jù),保存為 Excel

        太強了!Python 開發(fā)桌面小工具,讓代碼替我們干重復的工作!

        太酷了!手把手教你用 Python 繪制?;鶊D!| 用戶行為路徑分析

        MySQL 高級 | 用存儲過程、定時器、觸發(fā)器來解決數(shù)據(jù)分析問題

        瀏覽 95
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久久免费黄色 | 国产欧美熟妇另类久久久 | 隔壁少妇让我舔她逼视频 | 精品国产亚洲AV妓女 | 国产91精品看黄网站在线观看 | 91TS人妖另类精品系列 | 揉我胸啊嗯~出水了动漫 | 中日韩欧美风情视频 | 特黄特爽特刺激的视频 | 两根硕大一起挤进小娇妻 |