代码:
import os import threading from tkinter import Tk, Button, Label, filedialog from tkinter import ttk from pdf2docx import Converter def convert_single_pdf(): pdf_file = filedialog.askopenfilename(filetypes=[('PDF Files', '*.pdf')]) if pdf_file: single_button.config(state='disabled') status_label.config(text='正在转换中,请等待转换完成...') docx_file = os.path.splitext(pdf_file)[0] + '.docx' threading.Thread(target=convert_single_pdf_thread, args=(pdf_file, docx_file)).start() def convert_single_pdf_thread(pdf_file, docx_file): cv = Converter(pdf_file) cv.convert(docx_file, start=0, end=None) cv.close() status_label.config(text='转换完成!') single_button.config(state='normal') root = Tk() root.title('PDF转Word工具---微信公众号:蓝胖子之家') root.geometry('400x200') style = ttk.Style() style.configure('TButton', font=('Arial', 12), padding=10) style.configure('TLabel', font=('Arial', 12), padding=10) single_button = ttk.Button(root, text='选择PDF文件', command=convert_single_pdf) single_button.pack() status_label = ttk.Label(root, text='') status_label.pack() root.mainloop()
- 首先,我们导入了所需的模块:os、threading、Tkinter库中的一些组件以及pdf2docx库中的Converter类。
- 接下来,定义了一个名为convert_single_pdf的函数,用于选择要转换的PDF文件并启动转换过程。在函数内部,我们使用filedialog.askopenfilename方法打开文件选择对话框,用户可以选择一个PDF文件。如果用户选择了文件,我们会禁用按钮(single_button.config(state=’disabled’))并在状态标签(status_label)上显示"正在转换中,请等待转换完成…"。
- 然后,我们使用os.path.splitext方法获取PDF文件的文件名(不包含扩展名),并将其与".docx"拼接,得到要保存的Word文件名(docx_file)。
- 接着,我们使用threading.Thread方法创建一个新的线程,并将convert_single_pdf_thread函数作为目标函数,传入pdf_file和docx_file作为参数。这样可以在后台线程中进行转换操作,不会阻塞主线程的运行。
- convert_single_pdf_thread函数是实际执行PDF转Word操作的函数。我们创建了一个Converter对象(cv)并调用其convert方法,将pdf_file转换为docx_file。转换完成后,我们调用cv.close()关闭Converter对象,并在状态标签上显示"转换完成!"。最后,我们重新启用按钮(single_button.config(state=’normal’)。
- 接下来,我们创建了一个Tk对象(root)作为窗口,并设置了窗口的标题和大小。
- 然后,我们使用ttk.Style方法创建了一个样式对象(style),并使用style.configure方法设置了按钮和标签的字体和内边距。
- 接着,我们创建了一个按钮(single_button),设置其文本为"选择PDF文件",并将convert_single_pdf函数作为按钮的命令。然后将按钮添加到窗口中。
- 接下来,我们创建了一个标签(status_label),用于显示转换状态。初始时,标签的文本为空。然后将标签添加到窗口中。
- 最后,我们调用root.mainloop()启动窗口的事件循环,使窗口能够响应用户的操作。
使用方法:
- 双击运行程序
- 点击"选择PDF文件"按钮,选择要转换的PDF文件。
- 程序会在后台进行转换,期间会显示"正在转换中,请等待转换完成…"。
- 转换完成后,会在窗口上显示"转换完成!"。
运行效果:
pdf转word获取文章工具
链接:https://pan.baidu.com/s/1DO7BSLGazfnxr8ncdCX_ng 提取码:v7b9
原文始发于微信公众号(蓝胖子之家):Python写pdf转换word工具
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论