我用夸克网盘给你分享了「pdf转TXT文本」,点击链接或复制整段内容,打开「夸克APP」即可获
链接:https://pan.quark.cn/s/3440cb35f485

python
import os
import tkinter as tk
from tkinter import filedialog
from pypdf import PdfReader
def select_pdf_file():
"""弹出窗口选择单个PDF文件"""
root = tk.Tk()
root.withdraw() # 隐藏主窗口
file_path = filedialog.askopenfilename(
title="请选择要转换的PDF文件",
filetypes=[("PDF文件", "*.pdf"), ("所有文件", "*.*")]
)
return file_path if file_path else None
def select_output_path(default_name="output.txt"):
"""弹出窗口选择保存路径"""
root = tk.Tk()
root.withdraw() # 隐藏主窗口
output_path = filedialog.asksaveasfilename(
title="保存文本文件",
defaultextension=".txt",
initialfile=default_name,
filetypes=[("文本文件", "*.txt"), ("所有文件", "*.*")]
)
return output_path if output_path else None
def extract_text_standalone():
"""主流程:选择文件 -> 提取 -> 保存"""
# 1. 选择文件
pdf_path = select_pdf_file()
if not pdf_path:
print("未选择文件,程序退出。")
return
try:
reader = PdfReader(pdf_path)
text = ""
print(f"\n正在提取:{os.path.basename(pdf_path)}")
print(f"总页数:{len(reader.pages)},请稍候...")
# 2. 逐页提取文本
for page_num, page in enumerate(reader.pages, 1):
page_text = page.extract_text()
if page_text:
# 添加分页标记,方便查看
text += f"\n--- 第 {page_num} 页 ---\n"
text += page_text
# 3. 选择保存位置
default_filename = os.path.splitext(os.path.basename(pdf_path))[0] + "_提取文本.txt"
output_path = select_output_path(default_name=default_filename)
if output_path:
# 4. 写入文件 (使用utf-8防止中文乱码)
with open(output_path, "w", encoding="utf-8") as f:
f.write(text)
print(f"成功!文本已保存至:\n {output_path}")
else:
print("取消了保存操作。")
except Exception as e:
print(f"发生错误:{str(e)}")
# --- 程序入口 ---
if __name__ == "__main__":
# extract_text_standalone()
附录
🛠️ 第一步:安装打包工具
在打包之前,你需要先安装 pyinstaller 库。
打开命令行(CMD)或终端,输入以下命令并回车:
pip install pyinstaller
🚀 第二步:执行打包命令
假设你的 Python 脚本文件名为 pdf_converter.py。
推荐命令(单文件模式)
这个命令会生成一个单独的 .exe 文件,方便你复制给别人使用。
pyinstaller --onefile pdf_converter.py
进阶命令(自定义名称 + 隐藏控制台)
如果你希望生成的文件叫 PDF转文本工具.exe,并且不显示黑色的命令行窗口(因为你用了 GUI 弹窗):
pyinstaller --onefile --name=PDF转文本工具 --windowed pdf_converter.py
⚠️ 注意:
如果你使用了
--windowed(或-w) 参数,程序运行时不会显示黑色的控制台窗口。
- 优点:界面更清爽,像个正规软件。
- 缺点 :你的代码中
print("✅ 成功...")的提示信息你看不到。如果程序出错,你也看不到报错信息,程序会直接闪退。- 建议 :开发测试阶段先不要 加
--windowed,等确认程序完美运行后,再打包发布版时加上它。
📂 第三步:找到生成的文件
打包完成后,命令行会显示 SUCCESS。此时你的文件夹里会多出几个目录:
dist目录 (重点):这里面就是生成的.exe文件。你把这个文件复制出来,发给任何一台电脑都能直接双击运行。build目录:这是打包过程中的临时文件,打包完成后可以删除。pdf_converter.spec文件:这是 PyInstaller 的配置文件,一般不需要动。
💡 常见问题与技巧
-
杀毒软件误报 :
打包出来的
.exe文件有时会被 Windows Defender 或其他杀毒软件误报为病毒。这是因为 PyInstaller 的引导加载程序特征被某些杀毒软件标记了。如果是自己写的代码,选择"允许"或添加信任即可。 -
文件体积较大 :
即使你的代码只有几行,生成的
.exe文件也可能有 30MB-50MB 左右。这是正常的,因为它把 Python 解释器和pypdf库都打包进去了,相当于带了一个迷你 Python 环境。 -
如果代码里有图标 :
如果你想给 exe 换个图标(需要
.ico格式),可以加上--icon参数:pyinstaller --onefile --icon=my_icon.ico pdf_converter.py