# PDF to Markdown

输入学术论文 PDF，调用 MinerU 提取为 Markdown，随后把 Markdown 中引用的本地图片上传到 R2 图床，并输出一个纯 Markdown 文件。

## 1. 安装依赖

```bash
cd /home/qingz/projects/pdf-to-markdown
uv venv
source .venv/bin/activate
uv sync
cp .env.example .env
```

把 `.env` 里的 `MINERU_API_TOKEN` 改成你自己的 MinerU token。

## 2. 运行

```bash
uv run python run.py /path/to/paper.pdf
```

可选参数：

```bash
uv run python run.py /path/to/paper.pdf -o /path/to/output.md --language en
uv run python run.py /path/to/paper.pdf --ocr
uv run python run.py /path/to/paper.pdf --disable-table
uv run python run.py /path/to/paper.pdf --disable-formula
```

## 3. 输出

程序会输出最终生成的 Markdown 文件路径。Markdown 中的图片链接会被替换成绝对地址，上传结构为 `年/月/日/论文名简写/图片文件名`，因此在不同设备上直接打开 Markdown 文件也能看到图片。

## 4. 环境变量

- `MINERU_API_TOKEN`：MinerU API token
- `R2_BASE_URL`：图床上传基础地址
- `R2_BEARER_TOKEN`：图床 Bearer token
- `R2_PREFIX`：上传路径前缀
- `R2_PUBLIC_BASE_URL`：Markdown 中使用的公开访问基础地址
- `POLL_INTERVAL_SECONDS`：轮询间隔
- `TIMEOUT_SECONDS`：最大等待时间
