Pandoc 教程
🧠 一、Pandoc 是什么
Pandoc
👉 一个“万能文档转换器”
支持:
👉 本质:
任意文档格式 → 统一中间模型 → 任意输出格式
⚙️ 二、安装(macOS)
🥇 推荐(最简单)
brew install pandoc
🧪 验证
pandoc -v
看到版本号就OK
📦 三、PDF 支持(重点)
👉 Pandoc 本身不负责生成 PDF,需要引擎👇
方案对比
🥇 推荐安装(轻量)
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
👉 自动容错
⚖️ 九、工具选型建议
🏁 总结(给你一句话版本)
👉 Pandoc = 文档界的“编译器”
你要记住三件事:
转换:
pandoc input -o output
PDF 必须有引擎:
--pdf-engine=xelatex
中文必须指定字体
Pandoc 教程
https://blog.cikaros.cn/archives/wei-ming-ming-wen-zhang-AFu1gaYq