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

MarkItDown 实操指南:把 Office 文档转成 Markdown 只要一分钟

MarkItDown 实操指南:把 Office 文档转成 Markdown 只要一分钟

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

MarkItDown 是一个免费开源的 Python 工具,一行命令把 PDF、Word、PPT、Excel、图片、音频转成 Markdown。它解决的是"把杂乱文档喂给 LLM"的问题:标题、列表、表格这些结构都会保留下来,而不是压成一坨纯文本。

转换效果速览

先看仓库里自带的测试 PDF(一篇论文的首页)转出来的结果:

转出的 Markdown 大致长这样,正文段落完整,脚注也保留了:

1 Introduction Large language models (LLMs) are becoming a crucial building block in developing powerful agents that utilize LLMs for reasoning, tool usage, and adapting to new observations ...

环境与获取

要求 Python 3.10 及以上,建议先在虚拟环境里装,避免依赖打架。

  • 普通用户,装现成的就行:
pip install 'markitdown[all]'
  • 开发者想改源码,先克隆仓库再装开发版:
git clone https://gitcode.com/GitHub_Trending/ma/markitdown cd markitdown pip install -e 'packages/markitdown[all]'

[all]表示装齐所有格式依赖;如果只用 PDF 和 Word,装markitdown[pdf, docx]更省空间。

第一次运行

装完你会多出一个markitdown命令。把路径扔给它,结果直接打印到终端:

$ markitdown packages/markitdown/tests/test_files/test.pdf 1 Introduction Large language models (LLMs) are becoming a crucial building block ...

想存成文件,加-o

$ markitdown test.pdf -o test.md

也支持管道,方便接进现有脚本:cat test.pdf | markitdown。看到结构化的 Markdown 输出,就说明环境通了。

核心能力拆解

输入:先认文件,再派活

拿到字节流后,MarkItDown 先用魔数(文件头签名)识别真实格式,而不是只看扩展名,然后在一串注册好的转换器里按优先级匹配。每个格式对应一个转换器,通过accepts()判断自己能不能处理:

self.register_converter(PdfConverter()) self.register_converter(DocxConverter()) self.register_converter(PlainTextConverter(), priority=PRIORITY_GENERIC_FILE_FORMAT)

具体格式优先,纯文本兜底。匹配不到就明确报"不支持",不会硬转。

处理:抽取结构而非纯文本

这是它和"一键转文本"工具的区别:Word 的标题样式变成#,表格变成 Markdown 表格,超链接保留 href;Excel 按工作表输出表格;PPT 每页一张幻灯片逐页转。转出来的东西既给 LLM 读,人看也不算费劲。

输出:图片、音频也能变文字

对图片,它提取 EXIF 元数据(尺寸、标题、作者),如果你配了多模态 LLM,还会生成图片描述;音频则走语音转写。下图就是 LLM 描述功能用的测试图,配上llm_client后它会输出对红圆蓝方块的描述:

md = MarkItDown(llm_client=client, llm_model="gpt-4o") print(md.convert("example.jpg").text_content)

进阶用法

Docker 跑无环境依赖:不想装 Python 依赖时,仓库根目录的 Dockerfile 可以直接构建镜像,把文件从 stdin 喂进去:

docker build -t markitdown:latest . docker run --rm -i markitdown:latest < report.pdf > output.md

插件机制:第三方转换器默认不加载,markitdown --list-plugins看装了哪些,加-p启用。比较常用的是markitdown-ocr插件,靠 LLM Vision 从 PDF、PPT 里内嵌的图片中提取文字,不用额外装 OCR 库。

常用参数(CLI 和 Python 基本对应):

参数默认值说明
-o终端输出指定输出文件
-x自动识别stdin 读取时给扩展名提示,如-x pdf
-p关闭启用已安装的第三方插件
--use-docintel关闭改用 Azure Document Intelligence 云端提取
llm_client/llm_model为图片描述、OCR 提供 LLM

两个踩过的坑:从 stdin 读数据时没有任何线索可猜格式,务必带上-xmarkitdown-ocr插件没传llm_client时会静默跳过 OCR 走内置转换器,不报任何错,别以为插件没装。

答疑

现象:PDF 转出来是空白或一堆乱码。原因:这是扫描件,页面里没有文字层,离线提取不到。解决:用-d -e <endpoint>接 Azure Document Intelligence,或上markitdown-ocr插件。

现象:cat file | markitdown报错说不支持该格式。原因:管道输入丢掉了文件扩展名,无法确定格式。解决:加-x pdf手动给提示,或直接把文件路径作为参数。

现象:装完markitdown[all]之外,单独装的 markitdown 转 pptx 失败。原因:各格式依赖是可选的,基础包不含它们。解决:按需补装,如pip install 'markitdown[pptx]'

现象:接了 Azure 端点后部分格式仍走本地转换。原因:云端转换按文件格式路由,只有命中端点支持类型的文件才走云端。解决:确认文件格式在端点支持范围内,或调整docintel_file_types路由范围。

收尾

去终端跑一条markitdown 你的文件.pdf | head -20验证安装,然后挑一份真实文档转一遍。某个具体格式转换效果不对,直接去仓库 Issues 贴复现文件反馈。

【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4288398.html

相关文章:

  • Storybook 快速上手:3 步把 UI 组件变成可演示、可测试的故事
  • Ventoy 启动盘安装与排错指南:32MB 引导区,镜像长期复用
  • 开源心电异常检测系统:从信号处理到Web可视化完整实现解析
  • C++模板编程:从泛型思维到实战应用,掌握编译期代码生成利器
  • YOLOv8+PyTorch花卉识别实战:从数据集训练到API部署
  • K-means与DBSCAN聚类算法实战:从原理到SPSS应用全解析
  • 大模型内容创作质量提示的方法
  • Spring AOP @Pointcut execution表达式全解析:从语法到实战避坑指南
  • 给AI助手加个收件箱:FastAPI与SQLAlchemy异步任务处理实践
  • oMLX 模型自动发现全解:一个服务器同时加载 LLM、VLM、Embedding 与 Reranker
  • Bun 私有包管理上手:一份 bunfig.toml 配好私有源,安装不再 401
  • MinerU 文档解析故障排查手册:12 个高频常见问题一次讲清
  • Android Studio项目源码zip解压、Gradle导入与EOCD修复实战指南
  • 研发工程师校招笔试全解析:从网易真题看算法与基础考察
  • turbovec 原理篇(三):Lloyd-Max 量化器如何逼近香农失真-率极限
  • lazygit 快速上手指南:8 个 Git 高频操作如何在一块终端屏里完成
  • 登录日志与管理员审计日志存储决策
  • 保姆级 | Linux 系统命令(tar解压和压缩)
  • Vue3进度条(Progress)
  • 2026年AI论文平台推荐:9款高效AI工具一站式清单
  • DSP算法FPGA实现:从理论到硬件的完整工程链路与实践指南
  • mermaid流程图
  • 千问本地部署实战:从Ollama到Spring AI的完整接入指南
  • 前端工程协作的构建与发布
  • IBASE MI1001 Mini-ITX工业主板:边缘计算与工控替换的可靠之选
  • REDRIVER2:PS1经典游戏《Driver 2》的现代C++重实现与逆向工程解析
  • C++ I/O流与模板编程:从基础原理到实战应用
  • AI+3D人体解剖可视化工具的技术实现与搭建指南
  • 创业产品如何识别价值主张和替代方案
  • 转向系统编程的选型方法