mcpField
M
mistral-pdf-to-markdown

mistral-pdf-to-markdown

github.com/fuzhiyu文档处理1050 次安装47 周前更新
代码仓库

关于 mistral-pdf-to-markdown

这项技能使用 Mistral 的 OCR API 将 PDF 转为 Markdown,适合需要提取文本或保留文档结构的研究者和读者。它支持选择页面,并将嵌入图像另存到输出目录。

主要功能

  1. 01识别扫描版 PDF
  2. 02保留 Markdown 结构
  3. 03提取嵌入图像
  4. 04选择页面或范围

适用场景

  1. 01将研究论文转为 Markdown
  2. 02提取扫描文档中的文本
  3. 03转换 PDF 指定页面
  4. 04保存图像并生成引用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fuzhiyu/researchprojecttemplate --skill mistral-pdf-to-markdown

安装后在 Claude Code 中输入/mistral-pdf-to-markdown确认已加载。

附带文件reference.mdscripts/convert_pdf_to_markdown.py

详细介绍

Mistral PDF 转 Markdown 转换器

使用 Mistral 的 OCR API 将 PDF 文档转换为 Markdown 格式。自动提取文本、格式和图像。

适用场景

  • 将研究论文或文档转换为 Markdown
  • 从扫描版 PDF 中提取文本(具备 OCR 功能)
  • 保留文档结构,包括标题和格式
  • 提取 PDF 中嵌入的图像

快速开始

使用此技能目录中的转换脚本:

# Convert entire PDF
python scripts/convert_pdf_to_markdown.py input.pdf output.md

# Convert specific pages
python scripts/convert_pdf_to_markdown.py input.pdf output.md --pages "1-5"
python scripts/convert_pdf_to_markdown.py input.pdf output.md --pages "1,3,5"

输出结构

Output/PDFConversions/
├── document.md          # Markdown with text and image references
└── images/
    ├── img-0.jpeg      # Extracted images
    ├── img-1.jpeg
    └── ...

在代码中使用

from pathlib import Path
import subprocess

# Run conversion script
result = subprocess.run([
    "python",
    ".claude/skills/mistral-pdf-to-markdown/scripts/convert_pdf_to_markdown.py",
    "input.pdf",
    "Output/PDFConversions/output.md",
    "--pages", "1-10"
], capture_output=True, text=True)

print(result.stdout)

主要功能

  • Markdown 格式:保留标题、列表和结构
  • 图像提取:自动将图像保存到 images/ 子文件夹
  • 页面选择:提取指定页面或范围
  • 扫描版 PDF 支持:具备针对图像型 PDF 的真正 OCR 功能
  • 相对路径:图像引用使用 ![...](images/img-X.jpeg)

要求

此脚本需要:

  • Notes/.env 中的 Mistral API 密钥(第 2 行:mistral_api_key=...)
  • Python 包:mistralai、python-dotenv、pypdf

常见用例

转换研究论文
python scripts/convert_pdf_to_markdown.py \
  "Data/papers/research.pdf" \
  "Notes/Paper Markdown/research.md"
提取特定章节
# Extract pages 10-20 (introduction and methods)
python scripts/convert_pdf_to_markdown.py \
  "paper.pdf" \
  "Notes/Paper Markdown/intro_methods.md" \
  --pages "10-20"
仅提取图表
# Extract pages with figures
python scripts/convert_pdf_to_markdown.py \
  "paper.pdf" \
  "Notes/Paper Markdown/figures.md" \
  --pages "25,27,30,35"

错误处理

未找到 API 密钥:

Error: Mistral API key not found in Notes/.env

→ 在 Notes/.env 的第 2 行添加 mistral_api_key=YOUR_KEY

页面超出范围:

Warning: Page 100 out of range, skipping

→ 检查 PDF 页数并调整页面选择

API 速率限制: → 稍等片刻后重试,或减少每次请求的页面数

注意事项

  • 图像以 JPEG 文件形式保存在 images/ 子文件夹中
  • Markdown 图像引用会自动更新为 images/img-X.jpeg
  • 由于 API 限制,处理大型 PDF 可能需要更长时间
  • 若只需简单地提取文本而无需 OCR,可考虑改用 pdf 技能
  • 扫描版 PDF 最能发挥此技能的 OCR 功能

另请参阅

  • pdf 技能 - 用于无需 API 调用的本地 PDF 操作
  • reference.md - Mistral OCR API 的更多详情

评论

支持 Markdown