---
name: markdown-pdf
description: "Markdown to PDF conversion. Use when user needs to: export documents (导出成PDF/生成PDF/转换成PDF), create reports (保存为PDF), save as PDF (Export to PDF)."
---

# Markdown → PDF 转换

## 标准命令格式

```bash
md-to-pdf <input.md> \
  --launch-options '{"args":["--no-sandbox","--disable-setuid-sandbox","--disable-dev-shm-usage"]}' \
  --pdf-options '{"format":"A4","margin":"20mm","printBackground":true}'
```

**关键点**：
- 输出文件默认生成为 `<input>.pdf`（与输入同名，在同一目录）
- 支持 glob 模式批量处理：`md-to-pdf ./**/*.md`
- `--launch-options` 中的参数**必须包含**（Docker 容器要求）

## 常见场景

### 单个文档转换

```bash
md-to-pdf report.md \
  --launch-options '{"args":["--no-sandbox","--disable-setuid-sandbox","--disable-dev-shm-usage"]}' \
  --pdf-options '{"format":"A4","margin":"20mm","printBackground":true}'

# 输出：report.pdf（同目录）
```

### 指定输出路径（使用 stdin/stdout）

```bash
cat document.md | md-to-pdf \
  --launch-options '{"args":["--no-sandbox","--disable-setuid-sandbox","--disable-dev-shm-usage"]}' \
  --pdf-options '{"format":"A4","margin":"20mm","printBackground":true}' \
  > /home/aiuser/project/final.pdf
```

### 批量转换（使用 glob）

```bash
# 转换当前目录所有 Markdown 文件
md-to-pdf *.md \
  --launch-options '{"args":["--no-sandbox","--disable-setuid-sandbox","--disable-dev-shm-usage"]}' \
  --pdf-options '{"format":"A4","margin":"20mm","printBackground":true}'

# 递归转换所有子目录的 Markdown 文件
md-to-pdf ./**/*.md \
  --launch-options '{"args":["--no-sandbox","--disable-setuid-sandbox","--disable-dev-shm-usage"]}' \
  --pdf-options '{"format":"A4","margin":"20mm","printBackground":true}'
```

## 参数选项

### --pdf-options 常用配置

| 参数 | 可选值 | 说明 |
|------|--------|------|
| format | A4, Letter, A3, Legal | 纸张大小 |
| margin | "20mm" 或 {"top":"20mm",...} | 页边距（支持 CSS 简写或对象） |
| printBackground | true/false | 打印背景色（推荐 true） |
| landscape | true/false | 横向/纵向 |

## 重要提示

- ⚠️ **必须使用** `--no-sandbox` 等参数（Docker 环境要求）
- ✅ 已安装中文字体（fonts-noto-cjk），支持完美渲染中文
- ✅ 已安装 Emoji 字体（fonts-noto-color-emoji）
- 📝 支持完整 Markdown 语法（表格、代码块、Emoji）
