# Marker 与 Docling：PDF 转 Markdown 怎么选、怎么开始

比较 Marker 与 Docling 的本地运行条件、Markdown 输出和 OCR 配置，用同一份 PDF 开始评估，再决定自行部署还是使用转换 API。

Marker 和 Docling 都可以把 PDF 转成 Markdown。选哪一个，先看你准备怎样使用结果：直接得到文档文件，还是把解析后的内容继续接入 Python、检索和数据处理程序。另一个实际问题是，你是否愿意维护本地模型、运行环境和转换任务。

下面比较的是截至 2026 年 11 月 10 日官方文档中的运行方式与配置，不是识别准确率或速度排名。

## 两种工具分别怎样使用

| 关心的问题      | Marker                                  | Docling                                        |
| ---------- | --------------------------------------- | ---------------------------------------------- |
| 从命令行转换 PDF | `marker_single` 处理单文件，可指定 Markdown 输出目录 | `docling convert` 接收文件、目录或 URL，可指定 Markdown 输出 |
| 继续在程序里处理   | 有 Python 转换器，可取得文本和图片                   | 将内容转换为 Docling 文档对象，再导出或交给后续流程                 |
| 扫描页与文本层    | 提供强制 OCR 等选项                            | 可选择 OCR 引擎及处理模式                                |
| 图片         | Markdown 可以引用另存的图片                      | 提供占位、嵌入或独立引用等导出方式                              |

Marker 的入口和输出选项见[官方仓库](https://github.com/datalab-to/marker)；Docling 的文档对象用法见[快速入门](https://docling-project.github.io/docling/getting_started/quickstart/)，命令行选项见[CLI 参考](https://docling-project.github.io/docling/reference/cli/)。这些能力有重叠，表格本身不能说明谁更适合你的扫描书。

## 安装前，先确定运行环境

Marker 当前说明要求 Python 3.10 及以上及 PyTorch。需要模型推理时，NVIDIA GPU 路线使用 Docker 和 NVIDIA Container Toolkit；CPU 或 Apple Silicon 路线需要 llama.cpp 的 `llama-server`。先按[安装与推理后端说明](https://github.com/datalab-to/marker#installation)准备环境，再运行转换。

Docling 同样依赖模型和 PyTorch。操作系统、芯片架构及加速设备会影响安装方式；特别是 Intel Mac，应使用[安装文档](https://docling-project.github.io/docling/getting_started/installation/)给出的兼容方案。选择额外 OCR 引擎时，还可能需要安装对应依赖。

建议为两个工具分别创建独立的 Python 虚拟环境，避免依赖版本冲突。首次运行涉及模型准备，不能把第一次启动耗时直接当作日常转换速度。

## 用同一份 PDF 开始转换

以下命令按上述日期的官方文档整理。准备一份本地 `sample.pdf`，在各自环境中安装对应包。命令会安装当前可用版本，正式使用时应记录版本和运行配置。

Marker：

```bash
python -m pip install marker-pdf
marker_single "sample.pdf" --output_format markdown --output_dir "marker-output"
```

Docling：

```bash
python -m pip install docling
docling convert "sample.pdf" --to md
```

运行前可分别查看 `marker_single --help` 与 `docling convert --help`，确认已安装版本接受这些参数。模型后端准备失败时，先处理报错中的依赖问题，不要把“尚未开始转换”误判成 PDF 内容无法识别。

## 按用途比较输出，而不只看字数

如果你要整理研究笔记，挑一份同时包含双栏正文、表格和插图的材料。把两个结果与同一份原 PDF 并排打开，完整读过一个跨栏段落，再检查表头和图片引用。提取出的字符更多，并不意味着顺序和结构更正确。

如果你要把文档交给检索程序，先用少量结果走通自己的后续流程：章节如何分段，图表怎样关联正文，检索命中后如何定位原文。Docling 的文档对象和 Marker 的结构化输出都值得在这一阶段评估，而不是过早只保留一个大字符串。

有些 Markdown 包含 HTML 表格或数学语法，目标编辑器不一定都支持。表格显示异常时，区分内容提取错误与显示差异，参见[表格转 Markdown](https://pdfcraft.ai/zh-CN/blog/pdf-tables-to-markdown/)。移动结果时也要保留[图片资源](https://pdfcraft.ai/zh-CN/blog/pdf-markdown-image-assets/)。

记录样本、版本、设备、OCR 选项和是否启用额外模型，再比较一次转换耗时和后续修改量。这样得到的结论才适用于你自己的文件。

## 自行运行，还是使用在线服务

需要控制本地处理环境、反复调整解析流程时，可以从 Marker 或 Docling 开始。维护成本包括依赖、模型、任务队列及失败恢复，不能只按安装包是否免费判断。

如果主要目标是拿到 Markdown 文件，可以直接使用 [PDF Craft 在线转换](https://pdfcraft.ai/zh-CN/pdf-craft/)。需要接入程序时，参考[Python 转换教程](https://pdfcraft.ai/zh-CN/blog/pdf-to-markdown-python/)，由服务处理转换，你的程序负责上传、查询任务和保存结果。在线服务会处理上传的文档，并按用量计费，当前费用见[充值与费率](https://pdfcraft.ai/zh-CN/recharge/)。

先用一份有代表性的文件确定输出能否满足后续用途，再决定是否扩大到整个文档库。

