<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5835字,需瀏覽 12分鐘

           ·

          2022-08-26 11:49

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

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

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

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

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

          一、實現(xiàn)效果


          二、環(huán)境準(zhǔn)備

          2.1 pdf 轉(zhuǎn) word

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

          只要是標(biāo)準(zhǔn) 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 給應(yīng)用程序添加圖標(biāo)

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

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

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

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

          • -p 添加搜索路徑

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

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

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

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

          from ··· import * 
          改成 import 包名 

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

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

          擴展鏈接

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

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

          推薦閱讀

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

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

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

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

          太酷了!手把手教你用 Python 繪制桑基圖!| 用戶行為路徑分析

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

          瀏覽 95
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美逼网 | 就爱干av | 中日韩A片 | 狼人综合免费视频 | 乳大有奶水风流少妇 |