PDF 转 Word —— 用 Python 打造简易图形化工具

发布日期:2025-09-22
标签:Python 文件转换 GUI
分类:编程工具

点击下载 通过网盘分享的文件:pdf转word.exe
链接: https://pan.baidu.com/s/1mzEhaDtuAZiSpOmkLuS8Pw 提取码: dcyq


平时工作和学习中,经常会遇到需要将 PDF 转换成 Word 的情况。虽然有很多在线工具,但有时文件隐私敏感、或网络环境受限,使用在线工具并不方便。
今天分享一个使用 Python + Tkinter + pdf2docx 开发的小工具,支持图形界面操作,让你轻松实现 PDF 转 Word 转换。


🛠 工具功能概览

  • ✅ 支持选择本地 PDF 文件
  • ✅ 自定义保存 Word 文件路径
  • ✅ 图形化界面,操作简单直观
  • ✅ 转换过程自动提示成功或失败
  • ✅ 可打包为 EXE,方便分发使用

💻 图形界面展示

运行工具后,你将看到一个简洁的窗口:

  1. 选择 PDF 文件:点击按钮即可选择需要转换的 PDF。
  2. 设置 Word 输出路径:指定保存位置和文件名。
  3. 开始转换按钮:一键启动转换,完成后会提示结果。

🧩 核心代码实现

以下是工具的核心实现代码(基于 tkinter 搭建 GUI,pdf2docx 完成格式转换):

```python
import tkinter as tk
from tkinter import filedialog, messagebox
from pdf2docx import Converter
import os

def pdf_to_word(pdf_file, word_file):
    try:
        cv = Converter(pdf_file)
        cv.convert(word_file, start=0, end=None)
        cv.close()
        messagebox.showinfo("成功", f"转换完成:{word_file}")
    except Exception as e:
        messagebox.showerror("错误", f"转换失败:{e}")

def select_pdf():
    file_path = filedialog.askopenfilename(
        title="选择 PDF 文件",
        filetypes=[("PDF 文件", "*.pdf")]
    )
    if file_path:
        pdf_path_var.set(file_path)

def select_word():
    file_path = filedialog.asksaveasfilename(
        title="保存 Word 文件",
        defaultextension=".docx",
        filetypes=[("Word 文件", "*.docx")]
    )
    if file_path:
        word_path_var.set(file_path)

def start_convert():
    pdf_file = pdf_path_var.get()
    word_file = word_path_var.get()
    if not os.path.exists(pdf_file):
        messagebox.showwarning("提示", "请选择有效的 PDF 文件!")
        return
    if not word_file:
        messagebox.showwarning("提示", "请选择 Word 输出路径!")
        return
    pdf_to_word(pdf_file, word_file)

# GUI 主界面
root = tk.Tk()
root.title("PDF 转 Word")
root.geometry("500x200")

pdf_path_var = tk.StringVar()
word_path_var = tk.StringVar()

# PDF 文件选择
tk.Label(root, text="PDF 文件路径:").pack(anchor="w", padx=10, pady=5)
tk.Entry(root, textvariable=pdf_path_var, width=50).pack(anchor="w", padx=10)
tk.Button(root, text="选择 PDF", command=select_pdf).pack(anchor="w", padx=10, pady=5)

# Word 保存路径
tk.Label(root, text="Word 保存路径:").pack(anchor="w", padx=10, pady=5)
tk.Entry(root, textvariable=word_path_var, width=50).pack(anchor="w", padx=10)
tk.Button(root, text="选择保存路径", command=select_word).pack(anchor="w", padx=10, pady=5)

# 开始转换按钮
tk.Button(root, text="开始转换", command=start_convert, bg="lightgreen").pack(pady=15)

root.mainloop()