从一份没字的扫描件到整个文档库:MarkItDown 5 分钟实测
2026/8/28 11:54:43 网站建设 项目流程

从一份没字的扫描件到整个文档库:MarkItDown 5 分钟实测

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

打开一份扫描件 PDF,Ctrl+F 搜不到任何文字——文件看起来像文档,其实只是一堆扫描图片,手工抄录又不现实。这正是文档转 Markdown 工具要解决的场景。MarkItDown 是一个把 PDF、Word、PPT、图片等文件转成 Markdown 的 Python 工具,还能接入 LLM(能看懂图片和文字的大语言模型)完成扫描件 OCR(用视觉模型识别图中文字)与图片提字。下面按 安装 → 接入 LLM → 转换单文件 → 批量迁移 的完整流程走一遍。

5 分钟装好,转换第一份文档

安装是一条命令,[all]包会一次性带上 PDF、Word、PPT、Excel 等格式的依赖:

pip install "markitdown[all]" markitdown report.pdf > report.md

装完后只需要一条终端命令:传入文件,输出重定向到 .md 文件即可。带文字层的 PDF 能直接提出正文,普通办公文档的标题、表格、列表结构也会保留。命令行和 Python API 是同一套接口,脚本里写MarkItDown().convert("file.docx").text_content就能拿到结果。

给转换器装上"眼睛":接入 LLM 从图片里提取文字

装好之后的转换是"纯本地"的,只读取文件里已有的数据。想提取图片里的文字——发票上手写的金额、带标注的几何图形——需要接一个 LLM。构造函数传入两个参数即可:

从一张图片里提出文字

from openai import OpenAI from markitdown import MarkItDown md = MarkItDown(llm_client=OpenAI(), llm_model="gpt-4o") print(md.convert("invoice.jpg").text_content)

图片处理逻辑在 ImageConverter:遇到图片时把图发给视觉模型,把返回的描述写进 Markdown。同一套参数对 PPT 也生效——每张幻灯片里的图片都会带上模型生成的说明,方便后续被检索命中。

实践提示:没配置 API 密钥时,LLM 这一步会被静默跳过,输出只剩图片元数据,不会报错。发现结果里"图片没描述",先检查密钥。

PDF 文字提取:让扫描件合同"开口说话"

回到开头的扫描件合同。普通转换只能得到空文本,因为整页都是图片。官方插件 markitdown-ocr 补上了这块:它以更高优先级为 PDF、Word、PowerPoint、Excel 注册带 OCR 的转换器,对文件内嵌图片做识别,整页都是图片的 PDF 还有整页识别兜底。这是典型的 LLM 文档处理场景。

安装后,命令行只需在原有命令上加--use-plugins参数;Python 里则在MarkItDown()中传enable_plugins=True和同样的llm_clientllm_model

核心是 LLMVisionOCRService:把图片转成 Base64,连同"提取全部文字并保留排版"的提示词发给视觉模型;PdfConverterWithOCR 逐页调用它,并把识别出的文字放回对应位置,文档原有结构得以保留。

实践提示:识别质量与扫描分辨率直接相关,原图低于 150 DPI 时模型容易认错字,300 DPI 重扫一次会稳定得多。

批量迁移:把整个文档库搬走

命令行一次处理一个文件,迁移整个文档库用 shell 循环包一层就够:

for f in scans/*.pdf; do markitdown "$f" --use-plugins > "md/$(basename "${f%.pdf}").md" done

扫描件目录里每个文件都会生成同名的 .md;数字文件想省调用费用,把--use-plugins去掉即可。

按文档性质选转换路径

纯本地转换LLM 辅助转换
能提出什么内嵌文字、表格结构、文件元数据额外包括图片内文字、图片说明
成本无需联网,秒级完成需要视觉模型与 API 密钥,按图片计费
适合对象数字原生办公文档、带文字层 PDF扫描件、手写内容、图表、纯图片 PDF

数字原生文档和带文字层的 PDF,本地转换就够用;出现较多图片或扫描件时再启用 LLM 辅助。两者可以在同一实例中混用——传了 client 才生效,不传就静默走本地路径,不需要额外的开关配置。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询