python
# 创建打包脚本的主内容
script_content = """
from doc2x.extract_formula import extract_formula_imgs
from pix2text import Pix2Text
from PIL import Image
import os
def main():
pdf_path = "your_file.pdf" # 将你的PDF命名为 your_file.pdf 并放在同目录下
output_dir = "formulas"
os.makedirs(output_dir, exist_ok=True)
print("👉 正在提取公式图像...")
extract_formula_imgs(pdf_path, output_dir, dpi=300)
print("✅ 公式图像提取完成,开始识别 LaTeX 公式...")
p2t = Pix2Text()
with open("extracted_formulas.txt", "w", encoding="utf-8") as f_out:
for fname in sorted(os.listdir(output_dir)):
if fname.endswith(".png"):
img_path = os.path.join(output_dir, fname)
latex = p2t(Image.open(img_path))
print(f"{fname} → {latex}")
f_out.write(f"{fname}: {latex}\\n")
print("\\n🎉 所有公式识别完成,结果已保存至 extracted_formulas.txt")
if __name__ == "__main__":
main()
"""
requirements_content = """
doc2x[pix2text]
"""
# 写入打包文件
script_path = "/mnt/data/extract_formulas.py"
requirements_path = "/mnt/data/requirements.txt"
with open(script_path, "w", encoding="utf-8") as f:
f.write(script_content.strip())
with open(requirements_path, "w", encoding="utf-8") as f:
f.write(requirements_content.strip())
script_path, requirements_path
创建打包脚本的主内容 extract_formulas.py
依赖环境文件:requirements.txt
doc2x[pix2text]
用方法(只需3步):
-
将你的 PDF 重命名为:
your_file.pdf
,放在脚本同一目录下 -
安装环境:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
-
运行脚本:
python extract_formulas.py
完成后会自动:
-
提取所有数学公式区域图像
-
识别为 LaTeX 格式
-
保存结果到:
extracted_formulas.txt
转换成GUI工具
python
# 将脚本转换为简单的 tkinter GUI 应用程序
gui_script = """
import os
import tkinter as tk
from tkinter import filedialog, messagebox
from doc2x.extract_formula import extract_formula_imgs
from pix2text import Pix2Text
from PIL import Image
def select_pdf():
file_path = filedialog.askopenfilename(filetypes=[("PDF Files", "*.pdf")])
if file_path:
entry_pdf.delete(0, tk.END)
entry_pdf.insert(0, file_path)
def run_extraction():
pdf_path = entry_pdf.get()
if not os.path.isfile(pdf_path) or not pdf_path.endswith(".pdf"):
messagebox.showerror("错误", "请选择有效的 PDF 文件。")
return
output_dir = os.path.join(os.path.dirname(pdf_path), "formulas")
os.makedirs(output_dir, exist_ok=True)
messagebox.showinfo("提示", "正在提取公式图像,请稍候...")
extract_formula_imgs(pdf_path, output_dir, dpi=300)
p2t = Pix2Text()
output_file = os.path.join(os.path.dirname(pdf_path), "extracted_formulas.txt")
with open(output_file, "w", encoding="utf-8") as f_out:
for fname in sorted(os.listdir(output_dir)):
if fname.endswith(".png"):
img_path = os.path.join(output_dir, fname)
latex = p2t(Image.open(img_path))
f_out.write(f"{fname}: {latex}\\n")
messagebox.showinfo("完成", f"🎉 公式提取完成!结果保存在\\n{output_file}")
# GUI 界面
root = tk.Tk()
root.title("PDF 公式提取工具")
root.geometry("500x150")
tk.Label(root, text="选择 PDF 文件:").pack(pady=5)
entry_pdf = tk.Entry(root, width=50)
entry_pdf.pack(padx=10)
tk.Button(root, text="浏览", command=select_pdf).pack(pady=5)
tk.Button(root, text="开始提取公式", command=run_extraction, bg="#4CAF50", fg="white").pack(pady=10)
root.mainloop()
"""
gui_script_path = "/mnt/data/pdf_formula_gui.py"
with open(gui_script_path, "w", encoding="utf-8") as f:
f.write(gui_script.strip())
gui_script_path
-
安装依赖(首次运行):
pip install doc2x[pix2text] -i https://pypi.tuna.tsinghua.edu.cn/simple
-
双击运行或使用命令:
python pdf_formula_gui.py
-
在弹出的窗口中:
-
选择你的 PDF 文件
-
点击【开始提取公式】
-
将这个图形界面程序打包成
.exe
可执行文件的详细教程,适合 Windows 用户👇
✅ 步骤一:安装打包工具 PyInstaller
打开命令行,运行:
pip install pyinstaller
✅ 步骤二:使用 PyInstaller 打包为 EXE
在包含
pdf_formula_gui.py
文件的文件夹中运行以下命令:pyinstaller --onefile --windowed pdf_formula_gui.py
参数解释:
-
--onefile
:打包成单个.exe
文件 -
--windowed
:不显示命令行窗口(适合 GUI 应用) -
你可以双击它,像普通软件一样运行!
✅ 步骤三:获取打包好的 EXE 文件
dist/pdf_formula_gui.exe
自动生成:LaTeX 识别结果(
extracted_formulas.txt
)
-
自动安装依赖 .bat
文件
你还可以创建一个 install_and_run.bat
文件,内容如下:
@echo off pip install doc2x[pix2text] -i https://pypi.tuna.tsinghua.edu.cn/simple start pdf_formula_gui.exe
这样就可以发给别人用了,一键安装依赖并启动程序 🪄