如何用一条命令把 PDF、Word、PPT 转成 Markdown:MarkItDown 完整指南 如何用一条命令把 PDF、Word、PPT 转成 MarkdownMarkItDown 完整指南【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdownMarkItDown 是微软开源的轻量级 Python 工具能把 PDF、Word、Excel、PPT、音频、HTML 等异构文件统一转成 Markdown目标是为大模型语料与文本分析流水线提供统一的文本输入。当你手里有一堆不同格式的资料需要喂给模型时它就是目前最直接的选择。 先装好再跑第一条转换命令环境要求是 Python 3.10 及以上官方支持到 3.14。最省事的装法是一次性带齐所有格式依赖pip install markitdown[all] markitdown path-to-file.pdf -o document.md第二条就是最典型的调用给出输入文件用-o指定输出的.md文件。不带-o时结果打到 stdout直接重定向就能落盘走管道也行cat file.pdf | markitdown这种写法是支持的。如果只需要少数几种格式按 extras 单独装更轻。比如pip install markitdown[pdf,docx]只装 PDF 和 Word 的依赖比[all]更快更小日后某类格式转换报错先检查对应 extras 有没有装。可用的分组包括[pptx]、[docx]、[xlsx]、[xls]、[pdf]、[outlook]、[audio-transcription]、[youtube-transcription]等。 输出里为什么保留了标题和表格它没有准备一个通用解析器硬吃所有格式而是每种格式各配一个转换器集中在 converters 目录Word 归_docx_converter.py管PDF 归_pdf_converter.py管Excel 归_xlsx_converter.py管。调用者不用关心这套路由。执行markitdown report.docx report.md之后转换结果里标题落到了#层级上列表沿用列表语法表格以 Markdown 表格呈现超链接的 URL 原样保留。大语言模型在海量 Markdown 语料上训练过对这种格式的理解明显更好同样的内容 token 开销也低于纯文本。目前覆盖的输入有 PDF、PPTX、DOCX、XLSX/XLS、图片、音频、HTML、CSV/JSON/XML、EPUB、ZIP、YouTube 链接10 多种。让 LLM 给图片配一段描述图片没法直接变文字但可以借助视觉模型为它生成一段描述插进输出。这个开关只能在 Python 侧打开给构造函数加上llm_client与llm_model两个参数即可README 说明当前只作用于 PPTX 和图片文件from markitdown import MarkItDown from openai import OpenAI md MarkItDown(llm_clientOpenAI(), llm_modelgpt-4o) result md.convert(example.jpg) print(result.text_content)仓库自带的test_llm.jpg就是这类视觉模型任务的样本输入 扫描件里的文字怎么提取扫描件整页没有可提取文本常规转换器拿它没办法。markitdown-ocr插件补的正是这块它把 PDF、DOCX、PPTX、XLSX 中的图片内容送去视觉模型识别文字对整页无可提取文本的扫描 PDF会把每一页按 300 DPI 渲染成整页大图整页交给模型处理。细节见插件文档pip install markitdown-ocr pip install openaiPython 接法和上面的图片描述完全一致多传一个enable_pluginsTrue就行。识别出的文字会包在*[Image OCR]...[End OCR]*标记中放回原文对应位置。这里有个容易踩的点插件文档里提到过--llm-client这类命令行参数可实际去看 CLI 源码main.py里面并没有注册它们——能传llm_client的只有 Python API。照着文档敲命令行会发现 LLM 根本没生效一切以源码为准。另外如果没传llm_client插件虽然照常加载OCR 却会被静默跳过自动回退到内置转换器。⚠️ 批量转换与几个要留意的边界实际场景里更常见的是假设papers/目录是论文 PDF、报告 Word、数据表 Excel 的混合体想让模型都能引用可以这样批处理for f in papers/*; do markitdown $f -o papers_md/$(basename ${f%.*}).md done运行后 MarkItDown 会按扩展名把每个文件路由给对应转换器得到的是papers_md/下一组.md与原文件一一对应。后续无论切片喂模型还是建索引面对的都是同一种格式。其中如果还有扫描件装上markitdown-ocr并在 Python API 里传llm_client图片文字这一环就补齐了。再提醒两条边界。一是输出定位是机器读不是排版官方明确说它面向文本分析工具复杂版式多栏、公式密集的文档转换后最好人工抽查一遍不要直接拿去做交付。二是在服务端处理不可信输入时优先调用convert_local()而不是convert()后者会接受远程 URI。真的用过一次就知道这东西比想象中朴素装好、敲一条命令、拿到 Markdown。现在挑一个手边的 PDF 试转一下效果立刻见分晓。【免费下载链接】markitdownPython tool for converting files and office documents to Markdown.项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考