markpdfdown
MarkPDFDown 是一款基于多模态大语言模型视觉识别能力的开源工具,旨在将 PDF 文档或图片高效、精准地转换为格式整洁的 Markdown 文本。它有效解决了传统转换工具在处理复杂排版时常见的难题,如表格错位、数学公式丢失、图表无法识别以及标题层级混乱等,确保输出内容既保留原文结构又易于编辑。
该工具特别适合开发者、科研人员及需要频繁整理文献资料的用户。对于开发者而言,其模块化的架构和灵活的命令行接口(支持文件模式与管道模式)便于集成到自动化工作流中;对于研究人员和学生,它能快速将学术论文中的复杂公式和图表转化为可二次编辑的笔记素材。此外,项目还提供了桌面图形界面版本,让不熟悉命令行的普通用户也能轻松上手。
技术亮点方面,MarkPDFDown 通过 LiteLLM 兼容多种主流大模型,不仅支持 OpenAI 的 GPT-4o 系列,还能接入 OpenRouter 上的 Claude、Gemini 等先进视觉模型,用户可根据需求灵活切换。无论是提取单页图表还是批量转换数百页的专业文档,它都能凭借强大的视觉理解能力,还原文档的标题、列表、表格等关键元素,是提升文档数字化效率的得力助手。
使用场景
某学术研究员急需将一篇包含复杂数学公式、数据表格和架构图的英文顶会论文 PDF 转化为 Markdown 格式,以便导入笔记软件进行深度研读和二次引用。
没有 markpdfdown 时
- 格式严重丢失:传统 OCR 工具无法识别复杂的 LaTeX 数学公式,导致公式变成乱码或纯文本图片,完全不可编辑。
- 表格结构崩坏:多行多列的学术数据表格被强行拉平为无意义的长字符串,失去逻辑结构,需人工重绘。
- 人工成本极高:为了保留图表和公式的准确性,研究者不得不花费数小时手动截图、重新打字排版,效率极低。
- 层级混乱:论文的章节标题、参考文献列表经常混在一起,缺乏清晰的 Markdown 标题层级,难以快速导航。
使用 markpdfdown 后
- 完美还原公式:markpdfdown 利用多模态大模型视觉识别能力,精准将论文中的数学公式转换为标准的 LaTeX 代码,直接可渲染编辑。
- 智能重构表格:自动识别表格行列关系,将其转化为规范的 Markdown 表格语法,数据对齐整齐,逻辑清晰可见。
- 秒级完成转换:只需一条命令即可在几分钟内处理完几十页的文档,研究者可将原本用于排版的时间全部投入内容分析。
- 结构清晰有序:自动保留原文档的标题层级、列表和图表说明,生成的 Markdown 文件目录结构清晰,便于后续知识管理。
markpdfdown 通过 AI 视觉理解能力,将繁琐的“文档数字化”过程从耗时数小时的手工劳动转变为分钟级的自动化流程,让研究者能专注于知识本身而非格式调整。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
MarkPDFDown
英文 | 中文 | 日语 | 俄语 | 波斯语 | 阿拉伯语
![Size] ![Pulls] ![Tag] ![License]
一款强大的工具,利用多模态大语言模型将PDF文件转录为Markdown格式。
桌面应用
想要图形界面吗? 试试我们的桌面应用程序,体验更友好的用户界面!
npx -y markpdfdown

概述
MarkPDFDown旨在简化将PDF文档转换为整洁、可编辑的Markdown文本的过程。通过LiteLLM调用先进的多模态AI模型,它可以准确提取文本、保留格式,并处理包含表格、公式和图表等复杂结构的文档。
特性
- PDF转Markdown:将任何PDF文档转换为格式良好的Markdown
- 图片转Markdown:将图片转换为格式良好的Markdown
- 多提供商支持:通过LiteLLM支持OpenAI和OpenRouter
- 灵活的CLI:支持基于文件和管道的使用方式
- 格式保留:保持标题、列表、表格等格式元素
- 页码范围选择:从PDF文档中转换特定页码范围
- 模块化架构:代码结构清晰、易于维护,关注点分离
演示

安装
使用uv(推荐)
# 如果尚未安装uv,请先安装
curl -LsSf https://astral.sh/uv/install.sh | sh
# 克隆仓库
git clone https://github.com/MarkPDFdown/markpdfdown.git
cd markpdfdown
# 安装依赖并创建虚拟环境
uv sync
# 以开发模式安装包
uv pip install -e .
使用conda
conda create -n markpdfdown python=3.9
conda activate markpdfdown
# 克隆仓库
git clone https://github.com/MarkPDFdown/markpdfdown.git
cd markpdfdown
# 安装依赖
pip install -e .
配置
MarkPDFDown使用环境变量进行配置。在项目目录下创建一个.env文件:
# 复制示例配置
cp .env.sample .env
编辑.env文件以设置您的参数:
# 模型配置
MODEL_NAME=gpt-4o
# API密钥(LiteLLM会自动检测)
OPENAI_API_KEY=your-openai-api-key
# 或者对于OpenRouter
OPENROUTER_API_KEY=your-openrouter-api-key
# 可选参数
TEMPERATURE=0.3
MAX_TOKENS=8192
RETRY_TIMES=3
支持的模型
OpenAI模型
MODEL_NAME=gpt-4o
MODEL_NAME=gpt-4o-mini
MODEL_NAME=gpt-4-vision-preview
OpenRouter模型
MODEL_NAME=openrouter/anthropic/claude-3.5-sonnet
MODEL_NAME=openrouter/google/gemini-pro-vision
MODEL_NAME=openrouter/meta-llama/llama-3.2-90b-vision
使用方法
文件模式(推荐)
# 基本转换
markpdfdown --input document.pdf --output output.md
# 转换特定页码范围
markpdfdown --input document.pdf --output output.md --start 1 --end 10
# 将图片转换为Markdown
markpdfdown --input image.png --output output.md
# 使用Python模块
python -m markpdfdown --input document.pdf --output output.md
管道模式(适合Docker)
# 通过管道将PDF转换为Markdown
markpdfdown < document.pdf > output.md
# 使用Python模块
python -m markpdfdown < document.pdf > output.md
进阶用法
# 转换PDF中的第5至15页
markpdfdown --input large_document.pdf --output chapter.md --start 5 --end 15
# 处理多个文件
for file in *.pdf; do
markpdfdown --input "$file" --output "${file%.pdf}.md"
done
Docker使用
# 构建镜像(如果需要)
docker build -t markpdfdown .
# 使用环境变量运行
docker run -i \
-e MODEL_NAME=gpt-4o \
-e OPENAI_API_KEY=your-api-key \
markpdfdown < input.pdf > output.md
# 使用OpenRouter
docker run -i \
-e MODEL_NAME=openrouter/anthropic/claude-3.5-sonnet \
-e OPENROUTER_API_KEY=your-openrouter-key \
markpdfdown < input.pdf > output.md
开发环境搭建
代码质量工具
该项目使用ruff进行代码检查和格式化,以及pre-commit进行自动化代码质量检查。
安装开发依赖
# 如果使用uv
uv sync --group dev
# 如果使用pip
pip install -e ".[dev]"
设置pre-commit钩子
# 安装pre-commit钩子
pre-commit install
# 对所有文件运行pre-commit(可选)
pre-commit run --all-files
代码格式化和检查
# 使用ruff格式化代码
ruff format
# 运行代码检查
ruff check
# 自动修复可修复的问题
ruff check --fix
系统要求
- Python 3.9及以上
- uv(推荐用于包管理)或conda/pip
pyproject.toml中指定的依赖- 访问支持的LLM提供商(OpenAI或OpenRouter)
架构
项目采用模块化架构:
src/markpdfdown/
├── __init__.py # 包初始化
├── __main__.py # python -m 的入口点
├── cli.py # 命令行接口
├── main.py # 核心转换逻辑
├── config.py # 配置管理
└── core/ # 核心模块
├── llm_client.py # LiteLLM集成
├── file_worker.py # 文件处理
└── utils.py # 工具函数
贡献
欢迎贡献!请随时提交拉取请求。
- 分支仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 搭建开发环境:
uv sync --group dev pre-commit install - 进行更改并确保代码质量:
ruff format ruff check --fix pre-commit run --all-files - 提交更改(
git commit -m 'feat: Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 打开拉取请求
请确保您的代码遵循项目的编码标准,在提交前运行代码检查和格式化工具。
许可证
本项目采用Apache License 2.0许可。详情请参阅LICENSE文件。
致谢
- 感谢 LiteLLM 的开发者提供了统一的 LLM 访问接口
- 感谢为本工具提供支持的多模态 AI 模型的开发者
- 受到对更高效 PDF 转 Markdown 工具需求的启发
版本历史
1.2.02026/01/251.1.22025/09/201.1.12025/09/201.1.02025/09/201.0.112025/09/021.0.102025/06/101.0.82025/03/291.0.72025/03/271.0.62025/03/241.0.52025/03/221.0.42025/03/191.0.32025/03/151.0.22025/03/15常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器