当前位置: 首页 > news >正文

自动提取pdf公式 ➕ 输出 LaTeX

# 创建打包脚本的主内容
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步):

  1. 将你的 PDF 重命名为:your_file.pdf,放在脚本同一目录下

  2. 安装环境:

    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

  3. 运行脚本:

    python extract_formulas.py

完成后会自动:

  • 提取所有数学公式区域图像

  • 识别为 LaTeX 格式

  • 保存结果到:extracted_formulas.txt

转换成GUI工具

# 将脚本转换为简单的 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

这样就可以发给别人用了,一键安装依赖并启动程序 🪄

相关文章:

  • C++ 指针类型转换全面解析与最佳实践
  • PyTorch标注工具
  • 【C++】Chapter04<STL部分>:STL标准模板库概要
  • 【团体程序涉及天梯赛】L1~L2实战反思合集(C++)
  • Java并发编程高频面试题
  • Dubbo(41)如何排查Dubbo的服务不可用问题?
  • OpenCV阈值处理详解
  • 企业数据分析何时该放弃Excel?
  • No module named ‘keras.engine‘
  • mysql8.0.29 win64下载
  • SpringCloud的简单介绍
  • Jmeter脚本使用要点记录
  • volatile关键字用途说明
  • 打印网络内的层名称与特征图大小
  • 数据操作语言
  • 初探:OutSystems的运行原理是什么?
  • R语言赋能气象水文科研:从多维数据处理到学术级可视化
  • Python爬虫HTTP代理使用教程:突破反爬的实战指南
  • 隐私计算的崛起:数据安全的未来守护者
  • ollama+open-webui本地部署自己的模型到d盘+两种open-webui部署方式(详细步骤+大量贴图)
  • 《歌手2025》能否“爆”下去?
  • 19世纪的“表征之场”:弗洛伊德的精神分析椅
  • 浦江潮涌征帆劲,上海以高质量发展服务全国发展大局
  • 新华每日电讯:博物馆正以可亲可近替代“高冷范儿”
  • 菲律宾中期选举结果揭晓,马科斯与杜特尔特家族重回“权力的游戏”
  • 上海交大曾小勤:科技传播不应停留于知识搬运,要做科学思维的播种机