Python實現(xiàn)pdf轉(zhuǎn)word詳細(xì)代碼
一、實驗?zāi)繕?biāo)
通過利用python中的pyinstaller庫和PySimpleGUI庫,實現(xiàn)將pdf轉(zhuǎn)為word的實際功能。
二、實驗準(zhǔn)備
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('開始轉(zhuǎn)換'), sg.Button('退出')]]
# 創(chuàng)建窗口
window = sg.Window("張臥虎", layout, font=("微軟雅黑", 15), default_element_size=(50, 1))
# 事件循環(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()
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_fileconvert(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)化全篇
②對于不連續(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、實現(xiàn)多個文件轉(zhuǎn)化
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處,通過“.”進(jìn)行劃分,判斷是否為單個且pdf格式文件
②else if處,通過“;”劃分,將所有文件的存儲路徑儲存在一個數(shù)組中,利用循環(huán)來遍歷數(shù)組,從而達(dá)到依次轉(zhuǎn)化的目的
③else處,若傳入非pdf文件則輸出提示文字
五、結(jié)果

完結(jié)撒花!
總結(jié)
到此這篇關(guān)于Python實現(xiàn)pdf轉(zhuǎn)word的文章就介紹到這了,更多相關(guān)Python pdf轉(zhuǎn)word內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中random模塊生成隨機(jī)數(shù)詳解
本文給大家匯總了一下在Python中random模塊中最常用的生成隨機(jī)數(shù)的方法,有需要的小伙伴可以參考下2016-03-03
python訪問mysql數(shù)據(jù)庫的實現(xiàn)方法(2則示例)
這篇文章主要介紹了python訪問mysql數(shù)據(jù)庫的實現(xiàn)方法,結(jié)合實例形式分析了兩種Python操作MySQL數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-01-01
python如果快速判斷數(shù)字奇數(shù)偶數(shù)
這篇文章主要介紹了python如果快速判斷數(shù)字奇數(shù)偶數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
從基礎(chǔ)到高級詳解Python實現(xiàn)隨機(jī)選擇功能的完全指南
在數(shù)據(jù)科學(xué)、算法設(shè)計和系統(tǒng)開發(fā)中,隨機(jī)選擇是至關(guān)重要的核心技術(shù),Python提供了全面的隨機(jī)選擇工具集,下面小編就來和大家詳細(xì)介紹一下吧2025-08-08
python heic后綴圖片文件轉(zhuǎn)換成jpg格式的操作
這篇文章主要介紹了python heic后綴圖片文件轉(zhuǎn)換成jpg格式的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
PyCharm運(yùn)行Python代碼時出現(xiàn)"未找到模塊"錯誤解決步驟
在使用python的過程中經(jīng)常會遇到一個問題,就是叫什么名字的模塊未發(fā)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于PyCharm運(yùn)行Python代碼時出現(xiàn)"未找到模塊"錯誤的解決步驟,需要的朋友可以參考下2023-11-11

