pdf转word程序2.0
本帖最后由 liuhongrun2022 于 2023-1-16 16:45 编辑在线演示:
https://www.bilibili.com/video/BV1aP4y167T4
准备工作
所需要的库:
ttkbootstrap
安装:
pip install ttkbootstrap
pdf2docx
安装:
pip install pdf2docx
docx2pdf
安装:
pip install docx2pdf
PS:此程序不能用pyinstaller直接打包
应在打包时加上
--collect-all ttkbootstrap
比如
pyinstaller test.py -F -w --collect-all ttkbootstrap
本页已结束,请点击上方目录切换内容!
更新内容
1.更新GUI
全新的GUI使用了ttkbootstrap库
这是一个基于tkinter.ttk的库
使用起来和tkinter.ttk基本相同
官方文档:https://ttkbootstrap.readthedocs.io/en/latest/ (较慢)
2.更新了单文件pdf转word的保存位置
现在转换成的word文档
会保存在源文件夹里
对比:
v1.0版本的代码:
user_name = os.getlogin() # 获取你的用户名
desktop_path = f'C:/Users/{user_name}/Desktop/test.docx' # docx文件路径,默认设置在桌面
v2.0版本的代码:
wordfile = os.path.splitext(pdffile) + '.docx'
3.更新了word转pdf
使用了docx2pdf库来实现word转pdf
本页已结束,请点击上方目录切换内容!
效果
源代码
import tkinter.filedialog as tf
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
from ttkbootstrap.dialogs import Messagebox as msgbox
from pdf2docx import Converter
from docx2pdf import convert
import os
def pdf_to_words():
folder = tf.askdirectory(title='选择文件夹')
try:
for file in os.listdir(folder):
suff_name = os.path.splitext(file) # 分离出扩展名
if suff_name != '.pdf': # 如果不是PDF文档就退出
continue
file_name = os.path.splitext(file) # 分离出文件名
pdf_file = folder + '\\' + file
word_file = folder + '\\' + file_name + '.docx' # 进行转义并加上扩展名
cv = Converter(pdf_file) # 转成Word
cv.convert(word_file)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件夹!')
def pdf_to_word():
try:
pdffile = tf.askopenfilename(title='选择PDF文档') # 选择文件
wordfile = os.path.splitext(pdffile) + '.docx'
cv = Converter(pdffile)
cv.convert(wordfile)
cv.close()
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def word_to_pdf():
try:
inputfile = tf.askopenfilename(title='选择docx文档')
outputfile = os.path.splitext(inputfile) + '.pdf'
f1 = open(outputfile, 'w')
f1.close()
convert(inputfile, outputfile)
msgbox.show_info('转换成功!')
except FileNotFoundError:
msgbox.show_error('你没有选择任何文件!')
def about():
msgbox.show_info(message='版本号:v2.0\n制作者:鱼C论坛 liuhongrun2022')
root = ttk.Window()
root.title('PDF_to_Word2.0')
root.geometry('900x100')
b1 = ttk.Button(root, text="pdf批量转word", bootstyle='info-outline', command=pdf_to_words)
b1.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b2 = ttk.Button(root, text='pdf单文件转word', bootstyle='warning-outline', command=pdf_to_word)
b2.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b5 = ttk.Button(root, text='word转pdf',bootstyle='info-outline', command=word_to_pdf)
b5.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b3 = ttk.Button(root, text='关于', bootstyle='success-outline', command=about)
b3.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
b4 = ttk.Button(root, text='退出',bootstyle='danger-outline', command=exit)
b4.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l = ttk.Label(root, bootstyle='inverse-warning', text='转换中出现"未响应"为正常现象。')
l.pack(side=LEFT, padx=5, pady=5, fill=BOTH)
l.configure(font=('微软雅黑 Light',9))
root.mainloop()
如果喜欢,请评分!
你们的评分是我最大的新年礼物!
在这里祝大家新年快乐,万事如意!
https://xxx.ilovefishc.com/forum/202301/01/072741qwe3trz7373gw8nv.gif 牛 厉害! 来顶帖了!!!!! 。。。有个沙发,没中鱼币 厉害{:10_245:}
已收藏 厉害! {:10_254:}厉害! 厉害,谢谢分享 谢谢分享 牛 谢谢分享!!! 眸战冷宸 发表于 2022-12-31 19:52
厉害!
你已经可以领取勋章了 学习编程中的Ben 发表于 2022-12-31 20:54
你已经可以领取勋章了
什么勋章? 眸战冷宸 发表于 2022-12-31 21:05
什么勋章?
小鱼进步 学习编程中的Ben 发表于 2022-12-31 21:06
小鱼进步
感谢提示,我原来都不知道有勋章....{:10_266:} 眸战冷宸 发表于 2022-12-31 21:07
感谢提示,我原来都不知道有勋章....
哈哈哈 感谢分享
厉害! 感谢分享!