liuhongrun2022 发表于 2022-12-31 18:04:09

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

嘉岳呀 发表于 2022-12-31 18:12:52

lhr123 发表于 2022-12-31 18:34:21

厉害!

Mike_python小 发表于 2022-12-31 18:48:14

来顶帖了!!!!!

嘉岳呀 发表于 2022-12-31 19:02:30

。。。有个沙发,没中鱼币

青出于蓝 发表于 2022-12-31 19:19:06

厉害{:10_245:}
已收藏

额外减小 发表于 2022-12-31 19:37:11

厉害!

眸战冷宸 发表于 2022-12-31 19:52:19

{:10_254:}厉害!

lxping 发表于 2022-12-31 20:28:00

厉害,谢谢分享

hellometa 发表于 2022-12-31 20:28:19

谢谢分享

学习编程中的Ben 发表于 2022-12-31 20:52:44

学习编程中的Ben 发表于 2022-12-31 20:53:16

谢谢分享!!!

学习编程中的Ben 发表于 2022-12-31 20:54:11

眸战冷宸 发表于 2022-12-31 19:52
厉害!

你已经可以领取勋章了

眸战冷宸 发表于 2022-12-31 21:05:25

学习编程中的Ben 发表于 2022-12-31 20:54
你已经可以领取勋章了

什么勋章?

学习编程中的Ben 发表于 2022-12-31 21:06:47

眸战冷宸 发表于 2022-12-31 21:05
什么勋章?

小鱼进步

眸战冷宸 发表于 2022-12-31 21:07:32

学习编程中的Ben 发表于 2022-12-31 21:06
小鱼进步

感谢提示,我原来都不知道有勋章....{:10_266:}

学习编程中的Ben 发表于 2022-12-31 21:11:48

眸战冷宸 发表于 2022-12-31 21:07
感谢提示,我原来都不知道有勋章....

哈哈哈

as171819 发表于 2022-12-31 22:06:00

感谢分享

wypzf_8@163.com 发表于 2022-12-31 22:15:21


厉害!

hornwong 发表于 2022-12-31 22:17:15

感谢分享!
页: [1] 2 3 4 5
查看完整版本: pdf转word程序2.0