Python基于easygui實現(xiàn)pdf和word轉(zhuǎn)換小程序
核心代碼
# TODO 編寫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實測可用 def word_to_pdf(): word_file = easygui.fileopenbox(title="請上傳要轉(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="請上傳要轉(zhuǎn)換為word格式的pdf文件", default="*.pdf") # 如果上傳了文件,開始執(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)換成功") # 如果沒上傳,被視為取消操作 else: easygui.msgbox("取消操作", title="操作取消") choices = ["Word 轉(zhuǎn)換 PDF", "PDF 轉(zhuǎn)換 Word"] choice = easygui.buttonbox("請選擇要執(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
進入腳本所在目錄,cmd執(zhí)行
# --noconsole指的是執(zhí)行程序后不顯示cmd的會話,即執(zhí)行程序后不會彈出cmd的會話彈窗 pyinstaller --noconsole -F <pyname>
只要沒明顯報錯,基本就可以用
會在當前目錄下生成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'
此報錯是因為tqdm庫(顯示進度條的)這個庫可能不兼容有什么其他問題,解決方法:
添加以下代碼:
buffer = io.StringIO() sys.stdout = buffer sys.stderr = buffer
以上就是Python基于easygui實現(xiàn)pdf和word轉(zhuǎn)換小程序的詳細內(nèi)容,更多關(guān)于Python pdf和word轉(zhuǎn)換的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
我在七夕佳節(jié)用Python制作的表白神器,程序員也應(yīng)該擁有愛情!建議收藏
這篇文章主要介紹了我在七夕佳節(jié)用Python制作的表白神器,建議收藏,程序員也該擁有愛情,感興趣的小伙伴快來看看吧2021-08-08如何在Windows下載、安裝Python和配置環(huán)境(新手、保姆級教程)
本文詳細介紹了如何在Windows系統(tǒng)上下載、安裝Python以及配置環(huán)境變量,通過步驟說明,即使是新手也能順利完成Python的安裝,并驗證其是否成功,感興趣的朋友跟隨小編一起看看吧2024-11-11