Pandoc 教程

🧠 一、Pandoc 是什么

Pandoc
👉 一个“万能文档转换器”

支持:

输入

输出

Markdown

PDF

Word (.docx)

Markdown

HTML

Word

LaTeX

PDF

👉 本质:

任意文档格式 → 统一中间模型 → 任意输出格式

⚙️ 二、安装(macOS)

🥇 推荐(最简单)

brew install pandoc

🧪 验证

pandoc -v

看到版本号就OK


📦 三、PDF 支持(重点)

👉 Pandoc 本身不负责生成 PDF,需要引擎👇


方案对比

引擎

是否推荐

特点

LaTeX(xelatex)

⭐⭐⭐⭐

最强排版

wkhtmltopdf

⭐⭐⭐

简单快速

Typora

⭐⭐⭐⭐

GUI


🥇 推荐安装(轻量)

brew install --cask basictex

然后:

sudo tlmgr update --self
sudo tlmgr install xetex collection-fontsrecommended

🥈 简单方案

brew install wkhtmltopdf

🚀 四、基础用法(核心)


1️⃣ Markdown → PDF

pandoc input.md -o output.pdf

2️⃣ 指定引擎(推荐)

pandoc input.md -o output.pdf --pdf-engine=xelatex

3️⃣ Word → Markdown

pandoc input.docx -o output.md

4️⃣ Markdown → Word

pandoc input.md -o output.docx

5️⃣ 提取图片

pandoc input.docx -o output.md --extract-media=./media

🎯 五、常用进阶参数(非常重要)


📚 目录

pandoc input.md -o output.pdf --toc

🎨 指定字体(中文关键)

pandoc input.md -o output.pdf \
  --pdf-engine=xelatex \
  -V mainfont="PingFang SC"

🧾 代码高亮

pandoc input.md -o output.pdf --highlight-style=tango

📄 页面边距

pandoc input.md -o output.pdf -V geometry:margin=1in

🧩 使用模板

pandoc input.md -o output.pdf --template=template.tex

🧪 六、实战命令(推荐你直接用)

👉 开发者标准版本

pandoc README.md \
  -o README.pdf \
  --pdf-engine=xelatex \
  --toc \
  -V mainfont="PingFang SC" \
  -V geometry:margin=1in \
  --highlight-style=github

👉 轻量版本(无 LaTeX)

pandoc README.md \
  -o README.pdf \
  --pdf-engine=wkhtmltopdf

🧨 七、常见错误 & 解决(你刚刚踩过的)


❌ 1. 参数写错

-out ❌
-o   ✅

❌ 2. pdflatex not found

👉 没装 LaTeX

解决:

brew install --cask basictex

❌ 3. 下载 mactex 失败

👉 CTAN 镜像问题

解决:

  • 用清华镜像手动下载

  • 或直接用 BasicTeX


❌ 4. 中文乱码

👉 没指定字体

解决:

-V mainfont="PingFang SC"

❌ 5. PDF 当输入

pandoc file.pdf ❌

👉 Pandoc 不支持 PDF 解析


🧠 八、工程化用法(重点,适合你)

你可以直接把 Pandoc 封装进你的 AsyncFlow👇


示例 Task

Task: MarkdownToPdf
input: README.md
output: README.pdf
engine: xelatex

执行逻辑

pandoc ${input} \
  -o ${output} \
  --pdf-engine=${engine}

🔥 高级玩法

strategy:
  - try: xelatex
  - fallback: wkhtmltopdf

👉 自动容错


⚖️ 九、工具选型建议

场景

推荐

自动化 / CI

Pandoc

写作 + 导出

Typora

简单转换

wkhtmltopdf


🏁 总结(给你一句话版本)

👉 Pandoc = 文档界的“编译器”

你要记住三件事:

  1. 转换:

pandoc input -o output
  1. PDF 必须有引擎:

--pdf-engine=xelatex
  1. 中文必须指定字体


Pandoc 教程
https://blog.cikaros.cn/archives/wei-ming-ming-wen-zhang-AFu1gaYq
作者
Cikaros
发布于
2026年03月18日
许可协议