一文教會(huì)你用Python實(shí)現(xiàn)pdf轉(zhuǎn)word
一、實(shí)驗(yàn)?zāi)繕?biāo)
通過利用python中的pyinstaller庫和PySimpleGUI庫,實(shí)現(xiàn)將pdf轉(zhuǎn)為word的實(shí)際功能。
二、實(shí)驗(yàn)準(zhǔn)備
1、安裝pdf2docx庫
pip install pdf2docx
2、安裝PySimpleGUI庫
pip install PySimpleGUI
三、實(shí)驗(yàn)代碼
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('開始轉(zhuǎn)換'), sg.Button('退出')]] # 創(chuàng)建窗口 window = sg.Window("張臥虎", layout, font=("微軟雅黑", 15), default_element_size=(50, 1)) # 事件循環(huán) while True: # 窗口的讀取,有兩個(gè)返回值(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('文件個(gè)數(shù) :1') print('\n' + '轉(zhuǎn)換成功!' + '\n') print('文件保存位置:', filename) elif values['file'] and values['file'].split(';')[0].split('.')[1] == 'pdf': print('文件個(gè)數(shù) :{}'.format(len(values['file'].split(';')))) for f in values['file'].split(';'): filename = pdf2word(f) print('\n' + '轉(zhuǎn)換成功!' + '\n') print('文件保存位置:', filename) else: print('請(qǐng)選擇pdf格式的文件哦!') if event in (None, '退出'): break window.close() main()
四、部分代碼解析
1、pdf轉(zhuǎn)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)函數(shù)中
doc_file:轉(zhuǎn)化完成后文件名
start:轉(zhuǎn)化開始頁面
end:轉(zhuǎn)化結(jié)束頁面
注意點(diǎn):
①若不給start,end參數(shù)則默認(rèn)轉(zhuǎn)化全篇
②對(duì)于不連續(xù)的頁面,也可寫作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('開始轉(zhuǎn)換'),sg.Button('退出')]] window = sg.Window("id", layout, font=("微軟雅黑", 15), default_element_size=(50, 1))
theme表示主題,即圖形化界面的主題顏色(sg.theme_list()可以查看所有可用主題)
3、實(shí)現(xiàn)多個(gè)文件轉(zhuǎn)化
if event == "開始轉(zhuǎn)換": if values['file'] and values['file'].split('.')[1] == 'pdf': filename = pdf2word(values['file']) print('文件個(gè)數(shù) :1') print('\n' + '轉(zhuǎn)換成功!' + '\n') print('文件保存位置:', filename) elif values['file'] and values['file'].split(';')[0].split('.')[1] == 'pdf': print('文件個(gè)數(shù) :{}'.format(len(values['file'].split(';')))) for f in values['file'].split(';'): filename = pdf2word(f) print('\n' + '轉(zhuǎn)換成功!' + '\n') print('文件保存位置:', filename) else: print('請(qǐng)選擇pdf格式的文件')
①第一個(gè)if處,通過“.”進(jìn)行劃分,判斷是否為單個(gè)且pdf格式文件
②else if處,通過“;”劃分,將所有文件的存儲(chǔ)路徑儲(chǔ)存在一個(gè)數(shù)組中,利用循環(huán)來遍歷數(shù)組,從而達(dá)到依次轉(zhuǎn)化的目的
③else處,若傳入非pdf文件則輸出提示文字
五、結(jié)果
完結(jié)撒花!
總結(jié)
到此這篇關(guān)于用Python實(shí)現(xiàn)pdf轉(zhuǎn)word的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)pdf轉(zhuǎn)word內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 利用python程序生成word和PDF文檔的方法
- python批量實(shí)現(xiàn)Word文件轉(zhuǎn)換為PDF文件
- python word轉(zhuǎn)pdf代碼實(shí)例
- 詳解用Python把PDF轉(zhuǎn)為Word方法總結(jié)
- Python實(shí)現(xiàn)批量word文檔轉(zhuǎn)pdf并統(tǒng)計(jì)其頁碼
- Python實(shí)現(xiàn)批量將word轉(zhuǎn)換成pdf
- Python實(shí)現(xiàn)PDF轉(zhuǎn)Word的多種方式總結(jié)
- Python將Word文檔轉(zhuǎn)為PDF的兩種方法
相關(guān)文章
淺談在django中使用filter()(即對(duì)QuerySet操作)時(shí)踩的坑
這篇文章主要介紹了淺談在django中使用filter()(即對(duì)QuerySet操作)時(shí)踩的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03tensorflow中tf.reduce_mean函數(shù)的使用
這篇文章主要介紹了tensorflow中tf.reduce_mean函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python中使用OpenCV進(jìn)行人臉檢測(cè)的例子
這篇文章主要介紹了python中使用OpenCV進(jìn)行人臉檢測(cè)的例子,需要的朋友可以參考下2014-04-04flask框架自定義過濾器示例【markdown文件讀取和展示功能】
這篇文章主要介紹了flask框架自定義過濾器,結(jié)合實(shí)例形式分析了flask基于自定義過濾器實(shí)現(xiàn)markdown文件讀取和展示功能相關(guān)操作技巧,需要的朋友可以參考下2019-11-11python中WSGI是什么,Python應(yīng)用WSGI詳解
這篇文章主要介紹一下python中的WSGI, 小編在網(wǎng)上找了幾篇非常好的關(guān)于WSGI介紹,整理一下分享給大家。2017-11-11TensorBoard 計(jì)算圖的可視化實(shí)現(xiàn)
今天小編就為大家分享一篇TensorBoard 計(jì)算圖的可視化實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02