Python基于easygui實(shí)現(xiàn)pdf和word轉(zhuǎn)換小程序
核心代碼
# TODO 編寫(xiě)pdf轉(zhuǎn)換器 制作exe程序 import easygui import os from docx2pdf import convert from pdf2docx import Converter from pdf2image import convert_from_path import io import sys buffer = io.StringIO() sys.stdout = buffer sys.stderr = buffer desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") # TODO word轉(zhuǎn)換成pdf實(shí)測(cè)可用 def word_to_pdf(): word_file = easygui.fileopenbox(title="請(qǐng)上傳要轉(zhuǎn)換為pdf格式的word文件", default="*.docx") if word_file: pdf_file = word_file.replace(".docx", ".pdf") convert(word_file, pdf_file) easygui.msgbox(f"Word 文檔已成功轉(zhuǎn)換為 PDF:{pdf_file}", title="轉(zhuǎn)換成功") else: easygui.msgbox("取消操作", title="操作取消") def pdf_to_word(): pdf_file = easygui.fileopenbox(title="請(qǐng)上傳要轉(zhuǎn)換為word格式的pdf文件", default="*.pdf") # 如果上傳了文件,開(kāi)始執(zhí)行轉(zhuǎn)換操作 if pdf_file: docx_name = os.path.splitext(os.path.basename(pdf_file))[0] + ".docx" docx_path = os.path.join(desktop_path, docx_name) cv = Converter(pdf_file) cv.convert(docx_path) cv.close() easygui.msgbox(f"PDF 文檔已成功轉(zhuǎn)換為 Word:{docx_path}", title="轉(zhuǎn)換成功") # 如果沒(méi)上傳,被視為取消操作 else: easygui.msgbox("取消操作", title="操作取消") choices = ["Word 轉(zhuǎn)換 PDF", "PDF 轉(zhuǎn)換 Word"] choice = easygui.buttonbox("請(qǐng)選擇要執(zhí)行的操作", "文件轉(zhuǎn)換小工具", choices=choices) if choice == "Word 轉(zhuǎn)換 PDF": word_to_pdf() elif choice == "PDF 轉(zhuǎn)換 Word": pdf_to_word() else: easygui.msgbox("未選擇任何操作", title="操作取消")
效果
制作成exe程序
安裝pyinstaller
pip3 install -i https://pypi.douban.com/simple/ pyinstaller
進(jìn)入腳本所在目錄,cmd執(zhí)行
# --noconsole指的是執(zhí)行程序后不顯示cmd的會(huì)話,即執(zhí)行程序后不會(huì)彈出cmd的會(huì)話彈窗 pyinstaller --noconsole -F <pyname>
只要沒(méi)明顯報(bào)錯(cuò),基本就可以用
會(huì)在當(dāng)前目錄下生成build和dist目錄
雙擊即可使用
FAQ
Traceback (most recent call last): File "轉(zhuǎn)換器.py", line 173, in <module> File "轉(zhuǎn)換器.py", line 148, in word_to_pdf File "docx2pdf\__init__.py", line 106, in convert File "docx2pdf\__init__.py", line 29, in windows File "tqdm\asyncio.py", line 24, in __init__ File "tqdm\std.py", line 1099, in __init__ File "tqdm\std.py", line 1348, in refresh File "tqdm\std.py", line 1496, in display File "tqdm\std.py", line 462, in print_status File "tqdm\std.py", line 455, in fp_write File "tqdm\utils.py", line 139, in __getattr__ AttributeError: 'NoneType' object has no attribute 'write'
此報(bào)錯(cuò)是因?yàn)閠qdm庫(kù)(顯示進(jìn)度條的)這個(gè)庫(kù)可能不兼容有什么其他問(wèn)題,解決方法:
添加以下代碼:
buffer = io.StringIO() sys.stdout = buffer sys.stderr = buffer
以上就是Python基于easygui實(shí)現(xiàn)pdf和word轉(zhuǎn)換小程序的詳細(xì)內(nèi)容,更多關(guān)于Python pdf和word轉(zhuǎn)換的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python自動(dòng)化辦公之Word轉(zhuǎn)PDF的實(shí)現(xiàn)
- Python實(shí)現(xiàn)PDF轉(zhuǎn)Word的方法詳解
- 兩行Python代碼實(shí)現(xiàn)pdf轉(zhuǎn)word功能
- Python實(shí)現(xiàn)批量word文檔轉(zhuǎn)pdf并統(tǒng)計(jì)其頁(yè)碼
- Python實(shí)現(xiàn)批量將word轉(zhuǎn)換成pdf
- Python實(shí)現(xiàn)pdf轉(zhuǎn)word詳細(xì)代碼
- Python實(shí)現(xiàn)PDF轉(zhuǎn)Word的多種方式總結(jié)
- Python實(shí)現(xiàn)PDF到Word文檔的高效轉(zhuǎn)換
相關(guān)文章
python基礎(chǔ)教程項(xiàng)目四之新聞聚合
這篇文章主要為大家詳細(xì)介紹了python基礎(chǔ)教程項(xiàng)目四之新聞聚合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04我在七夕佳節(jié)用Python制作的表白神器,程序員也應(yīng)該擁有愛(ài)情!建議收藏
這篇文章主要介紹了我在七夕佳節(jié)用Python制作的表白神器,建議收藏,程序員也該擁有愛(ài)情,感興趣的小伙伴快來(lái)看看吧2021-08-08如何在Windows下載、安裝Python和配置環(huán)境(新手、保姆級(jí)教程)
本文詳細(xì)介紹了如何在Windows系統(tǒng)上下載、安裝Python以及配置環(huán)境變量,通過(guò)步驟說(shuō)明,即使是新手也能順利完成Python的安裝,并驗(yàn)證其是否成功,感興趣的朋友跟隨小編一起看看吧2024-11-11