
Pandoc
Pandoc简介
Pandoc是什么?
Pandoc 是一个开源的跨平台文档格式转换工具,由美国加州大学伯克利分校的哲学系教授 John MacFarlane 开发(主要用 Haskell 语言写的),现在还有德国开发者 Albert Krewinkel 一起维护。它在 GitHub 上特别火,有超过 27000 个“点赞”(Star),3000 多人参与过改进。很多人称它是“文档转换界的瑞士军刀”——啥格式都能转,还特别灵活。简单来说,不管你是写论文、做课件,还是整理笔记,它都能帮你把文档从一种格式变成另一种格式。
Pandoc功能特征
支持的格式超多
Pandoc 能处理超过 50 种文档格式的互相转换。比如:
文本类:Markdown(现在很多人写笔记用的轻量级格式)、LaTeX(学术排版神器)、reStructuredText(Python 社区常用的文档格式)、HTML(网页代码);
办公文档:Word 的 .docx 文件、OpenDocument 格式(.odt,比如 LibreOffice 用的);
电子书:EPUB(适合手机阅读的电子书格式)、MOBI(亚马逊 Kindle 用的格式);
还能通过 LaTeX 生成高质量的 PDF——比如毕业论文、学术报告这种需要严格排版的场景。
能自己改规则
如果默认的转换效果不满足需求,可以用 Lua 或 Python 写脚本自定义规则。比如:
用自己设计的模板生成特定样式的 Word 或 PDF(比如公司 logo 固定在页眉);
写个小程序自动调整文档里的内容(比如把所有标题字体改成宋体加粗)。
其他实用功能
一次合并多个文件再转换(比如把 3 个 Markdown 笔记合成一个 PDF);
渲染 LaTeX 数学公式(比如写论文时的公式,转成 HTML 或 PDF 后依然清晰)。
Pandoc应用场景
学生/老师写论文或课件:比如用 Markdown 写初稿(简单好编辑),然后一键转成 Word 给导师看,或者转成 PDF 打印;也可以把 LaTeX 文档转成 Word,方便和不会用 LaTeX 的同学协作。
写技术文档或教程:比如用 Markdown 写了个软件使用指南,需要同时给网页(HTML)和打印版(PDF)用,Pandoc 直接一键生成两种格式。
做ppt:用 Markdown 写演讲稿,转成 Beamer 幻灯片(适合学术汇报),或者转成 PowerPoint 的 .pptx 文件(适合公司汇报)。
自动化处理文档:比如公司用 Pandoc 结合脚本,定期把数据库里的内容自动转成 PDF 手册;或者写代码时,用它把代码注释自动生成 HTML 文档。
团队协作时统一格式:技术团队习惯用 Markdown 快速写文档,产品经理需要 Word 版本确认需求,法务合同要在 LaTeX 和 DOCX 之间来回改——Pandoc 能轻松搞定这些需求。
Pandoc安装
Pandoc 支持 Windows、Mac 和 Linux,装起来挺方便:
Windows 用户:
最简单的方法:去 Pandoc 官网 下载安装包(.msi 文件),双击运行按提示装完就行。装完后打开命令提示符(按 Win+R 输入 cmd),输入 pandoc --version,如果看到版本号就说明装好了。
另一种方法:如果你电脑装了 Chocolatey(一个 Windows 包管理工具),直接在命令行输入 choco install pandoc 就能自动装。
Mac 用户:
如果装了 Homebrew(Mac 上常用的软件管理工具),在终端输入 brew install pandoc,等一会儿就装好了。
也可以去官网下载 macOS 版本的安装包,双击安装。
Linux 用户:
Debian/Ubuntu 系统:打开终端输入 sudo apt-get update 更新软件列表,再输入 sudo apt-get install pandoc 安装。
Arch/Manjaro 系统:输入 sudo pacman -S pandoc。
其他 Linux 系统可以用对应的包管理工具装,或者直接从源代码编译安装(适合会写代码的用户)。
Pandoc使用
最简单的转换
比如把一个 Markdown 文件转成 PDF:
pandoc input.md -o output.pdf
或者把 LaTeX 文件转成 HTML:
pandoc input.tex -o output.html
合并多个文件再转
比如把两个 Markdown 笔记合成一个 HTML 文件:
pandoc input1.md input2.md -o combined.html
生成幻灯片
用 Markdown 写演讲稿,转成 Beamer 幻灯片(适合学术汇报):
pandoc input.md -t beamer -o slides.pdf
或者转成 PowerPoint 文件:
pandoc input.md -t pptx -o presentation.pptx
加自定义信息
比如在生成的 PDF 里固定标题、作者等信息:
pandoc input.md -o output.pdf --metadata title="我的笔记" --metadata author="张三"
总之,Pandoc 就像一个万能翻译官,不管你手头是什么格式的文档,想转成什么格式,它大概率都能搞定。而且支持自定义规则,适合从学生到专业人士的各种需求。
开源链接
https://github.com/jgm/pandoc