pdf-ocr-obsidian通过Mistral AI OCR API自动化将PDF文件转换为Markdown格式,通过提取PDF中的文本和图像,组织成结构化的Markdown文档,其中图像使用Obsidian风格的wikilinks进行链接。
可以将多个PDF文件放在输入文件夹中,系统会自动处理它们。
将扫描的PDF转换为结构化的Markdown格式,同时保留文档的层次结构。
将图像单独保存,在Markdown中使用Obsidian兼容的![[image-name]]
格式进行链接。
每个处理的PDF都会有自己的输出文件夹,包含Markdown文件和图像。
将OCR响应保存为JSON格式,以避免重复的API调用。
在Jupyter Notebook中逐步运行OCR处理。
可以直接上传PDF文件,预览输出,下载Markdown文件,不需要其他设置,访问 https://markdownify.up.railway.app/
上传PDF文件。
1、安装依赖:pip install -r requirements.txt
2、运行应用:python app.py
3、打开浏览器:访问http://localhost:5000/
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格式,可供后续使用。