科学工具
科学工具让世界更美好
让世界更美好

pdf-ocr-obsidian自动化工作流:使用 Mistral AI OCR API 将 PDF 文档转换为 Markdown 格式pdf-ocr-obsidian自动化工作流:使用 Mistral AI OCR API 将 PDF 文档转换为 Markdown 格式

pdf-ocr-obsidian通过Mistral AI OCR API自动化将PDF文件转换为Markdown格式,通过提取PDF中的文本和图像,组织成结构化的Markdown文档,其中图像使用Obsidian风格的wikilinks进行链接。

批量处理

可以将多个PDF文件放在输入文件夹中,系统会自动处理它们。

文本提取

将扫描的PDF转换为结构化的Markdown格式,同时保留文档的层次结构。

图像提取

将图像单独保存,在Markdown中使用Obsidian兼容的![[image-name]]格式进行链接。

自动组织

每个处理的PDF都会有自己的输出文件夹,包含Markdown文件和图像。

OCR缓存

将OCR响应保存为JSON格式,以避免重复的API调用。

笔记本模式

在Jupyter Notebook中逐步运行OCR处理。

使用方式

1:使用托管Web应用

可以直接上传PDF文件,预览输出,下载Markdown文件,不需要其他设置,访问 https://markdownify.up.railway.app/ 上传PDF文件。

2:本地部署

1、安装依赖:pip install -r requirements.txt

2、运行应用:python app.py

3、打开浏览器:访问http://localhost:5000/

3:Jupyter Notebook

1、安装Python 3.9或更高版本。

2、安装依赖:pip install mistralai jupyter python-dotenv

3、设置API密钥:编辑.env.example文件,将你的API密钥填入,重命名为.env

4、打开Notebook:jupyter notebook pdf-markdown-ocr.ipynb

5、放置PDF文件:在首次使用前,在项目目录中创建pdfs_to_process文件夹,将PDF文件放入其中

6、运行Notebook:逐个单元格运行

7、输出结构:每个处理的PDF会在ocr_output文件夹中生成一个单独的文件夹,结构如下:

ocr_output/
  MyDocument/
    output.md # 提取的Markdown文件,带有wikilinks
    ocr_response.json # 原始OCR响应(用于重用)
    images/
      MyDocument_img_1.jpeg
      MyDocument_img_2.jpeg
  pdfs-done/
    MyDocument.pdf # OCR完成后移动至此

8、移动输出到Obsidian:将生成的output.md文件移动到你的Obsidian库中,将图像移动到附件文件夹。

注意事项

• 目前Obsidian必须配置为支持![[image-name]]样式的链接,如果你的设置不同,脚本可能无法直接使用,你可以自行fork后进行调整。

工作原理

Notebook会扫描pdfs_to_process文件夹中的PDF文件,每个PDF文件会被上传到Mistral AI进行OCR处理,提取的文本会保存为Markdown文件(output.md),图像会被提取后保存在一个子文件夹中,在Markdown中使用![[image-name]]进行引用。原始PDF文件会被移动到pdfs-done文件夹,避免重复处理,完整的OCR响应会被保存为JSON格式,可供后续使用。