Marker PDF转Markdown:从单文件转换到批量输出的实操指南

发布时间:2026/9/1 10:59:58
Marker PDF转Markdown:从单文件转换到批量输出的实操指南 Marker PDF转Markdown从单文件转换到批量输出的实操指南【免费下载链接】markerConvert PDF to markdown JSON quickly with high accuracy项目地址: https://gitcode.com/GitHub_Trending/ma/markerMarker 是一款开源文档转换工具把 PDF、图片、PPTX、DOCX、XLSX、HTML、EPUB 文件转成 Markdown、JSON、HTML、chunks 四种格式能处理表格、公式、多栏布局、引用链接并提取图片单独保存。GPU 上可用balanced模式做高精度转换纯 CPU 也能跑不依赖大模型的文字层路径。适合需要把论文转成可编辑笔记、构建文档站点、或把语料灌入 RAG 系统的开发者。最短路径5 分钟转出第一个 PDF安装依赖要求 Python 3.10 和 PyTorch。只处理 PDF 和图片pip install marker-pdf还需要转换 PPTX、DOCX、XLSX、EPUB 等格式时安装完整依赖pip install marker-pdf[full]单文件转换与产物检查marker_single /path/to/file.pdf --output_dir ./out运行模式按设备自动选择GPU 默认balancedCPU/MPS 默认fast。完成后./out目录下会得到file.md转换结果公式用$$围栏、代码用反引号围栏、脚注变上标file_meta.json元数据含计算出的目录和逐页的提取方法、块类型统计若干图片文件PDF 中的插图被提取到同目录Markdown 里用相对路径引用直接打开生成的 Markdown 对照原 PDF重点检查阅读顺序、表格结构和公式是否还原正确。先用交互界面试跑想先看效果再决定参数可以启动自带的 Streamlit 界面在浏览器里选文件和基本选项marker_gui输入与处理Marker 能处理什么输入格式与硬件要求默认依赖即可处理 PDF 和各类图片其余格式需要[full]依赖。OCR 走 surya 多语言 VLM所以扫描件支持多语言如果文档本身有可用文字层不启用 OCR 时基本不限语言。转换流程只在必要时调用大模型Marker 的流程是按阅读顺序提取 PDF 嵌入文字逐页判断文字层是否可用只对乱码页或扫描页调用 VLM 做 OCR公式由 VLM 识别表格先用文字层在 CPU 上重建低置信度再回退到 VLM。因此干净的数字文档在fast模式下几乎不启动大模型速度自然快。项目用第三方基准 olmocr-bench1,403 份 PDF覆盖公式、表格、多栏、老旧扫描等类别做了自测在单台 B200 GPU 机器上的持续吞吐为balanced 模式综合得分 76.0%纯数字文档子集 83.5%、约 2.9 页/秒fast 模式 66.6%、约 7.4 页/秒--disable_ocr纯文字层模式 43.6%、约 23.7 页/秒且完全不需要 GPU。下图是各模式在质量与吞吐两个维度上的位置输出格式与文件结构四种输出格式格式内容特点适用场景markdown默认格式化表格、LaTeX 公式、代码围栏、图片相对链接笔记、文档站点json树状结构每页一个节点含块类型与四角坐标程序化解析html公式在math标签、代码在pre标签网页嵌入chunks扁平块列表每块带完整 HTMLRAG 分块用--output_format json等参数切换。JSON 输出里每个块都有block_type如 Table、Equation、SectionHeader和polygon位置section_hierarchy记录块所属标题层级方便按类型筛选。输出质量长什么样仓库示例目录里有几份已转换好的文档可以对照。下图是 Marker 从教材 PDFThink Python中提取出来、保存在输出目录里的插图Markdown 中以相对路径引用如果只需要文本加--disable_image_extraction跳过图片提取。批量转换与页面范围控制批量输出marker ./pdf_folder --output_format json --output_dir ./outmarker支持marker_single的全部参数另加几个批量控制项--workers N并行进程数默认按硬件自动设置调大可提高吞吐但更吃 CPU--skip_existing跳过已有输出的文件用于断点续跑--max_files N限制转换文件数适合先试跑多机分片每台机器跑一条--num_chunks 4 --chunk_idx N各起各的推理服务所有 worker 共享父进程拉起的同一个推理服务器并发额度由父进程统一分配不需要手动调参。页面范围限制marker_single file.pdf --page_range 0,5-10,20页码从 0 开始支持逗号分隔的单页和区间。大文档可以先转几页验证参数是否合适再跑全文。输出质量不够时三个关键参数用 --use_llm 提升准确率LLM 负责合并跨页表格、处理行内公式、修正复杂表格格式、提取表单字段值。默认后端是 Gemini API需配置密钥想用本地模型marker_single file.pdf --use_llm --llm_servicemarker.services.ollama.OllamaService其余可选服务包括 Claude、OpenAI 兼容端点、Azure、Vertex、OpenRouter都通过--llm_service切换。只提取表格数据报告里只要表格时可以用表格专用转换器跳过整页转换marker_single report.pdf --converter_cls marker.converters.table.TableConverter --output_format json表格以 HTMLtable块输出JSON 模式下还带每页的位置信息。如果整页都是表格可再加--force_layout_block Table跳过版面检测。两个极端的 OCR 开关--force_ocr强制全部页面走 OCR适用于文字层损坏的文档--disable_ocr则关闭一切大模型调用纯文字层提取最快但公式和扫描页会缺失。常见失败现象与排查现象可能原因处理建议输出乱码、缺字PDF 嵌入文字层损坏加--force_ocr重跑内存不足、进程被杀worker 过多或单文件过长调小--workers或把长 PDF 拆成多份公式丢失或错乱公式不在文字层里且当前是 fast 模式换balanced模式需 GPU嵌套表格、复杂表单渲染不佳项目已知限制组合--use_llm --force_ocr可缓解不确定问题出在哪—加--debug会导出每页的版面与文字检测图官方说明的已知边界非常复杂的版面嵌套表格和表单不保证正确处理表单渲染质量也一般。它是个尽力而为的工具不要对任意 PDF 做 100% 还原的预期。下一步可以深入的地方Python APImarker/converters/pdf.py 中的PdfConverter可在自己进程里拿渲染对象、按块类型筛选内容API 服务marker_server --port 8001起一个 FastAPI 端点仅暴露page_range、mode、output_format等基础参数--use_llm走 CLI 或 Python API复现基准benchmarks/ 下的脚本可直接跑出上述分数和吞吐查看真实效果data/examples/markdown/ 有教材和论文的完整转换结果扩展开发marker/processors/ 与 marker/renderers/ 均可替换或新增用于定制处理逻辑和输出格式【免费下载链接】markerConvert PDF to markdown JSON quickly with high accuracy项目地址: https://gitcode.com/GitHub_Trending/ma/marker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考