Pandoc 的简单使用

2022/6/4 23:20:18

本文主要是介绍Pandoc 的简单使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本文的大部分内容是 Pandoc官方文档 的翻译。

简介

Pandoc 是一个用 Haskell 编写的库,这是一个用来将文本从一种格式转成另一种格式的命令行工具。

Pandoc 支持大量的格式,包括但不限于 Markdown(和它的一些方言)、HTML、LaTeX、Word docx 等。Pandoc 也可以输出 PDF 格式的文件。

使用 Pandoc

如果没有指定任何输入文件,那么 Pandoc 会从标准输入(也就是命令行)读入数据。同理,如果没有指定任何输出文件,那么 Pandoc 会向标准输出 输出数据。

如果你希望输出到某个文件,则使用 -o

pandoc -o output.html input.txt

指定格式

输入和输出的格式可以使用命令行选项来指定。

  • 使用 -f--from 来指定输入的格式(而非具体的文件)。

  • 使用 -t--to 来指定输出的格式(而非具体的文件)。

比如,你要将 hello.txt 的内容从 Markdown 转成 LateX,那么你应该输入:

pandoc -f markdown -t latex hello.txt

你可以使用 pandoc --list-input-formatspandoc --list-output-formats 来查看完整的支持格式的列表。

字符编码

Pandoc 使用 UTF-8 作为输入和输出的编码。

导出为 PDF

要导出为 PDF,只需指示输出格式为 PDF 即可。但需要安装 至少一个 PDF 引擎(PDF engine)。Pandoc 会在导出 PDF 时自动到 PATH 环境变量中寻找可用的 PDF 引擎。如果你的 PDF 引擎不在 PATH 中,那么你需要指定完整的路径。

Pandoc 默认使用 LaTeX 来导出 PDF,这需要你安装一个 LaTeX 发行版。要使用其他 PDF 扩展,需要使用 --pdf-engine 参数来指定。这个参数的合法值为 pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, pagedjs-cli, prince, contextpdfroff。如果你没有指定这个参数,那么 Pandoc 根据你需要的输出格式,按照下面的标准来默认地设置这个参数:

  • -t latex 或未指定输出格式: pdflatex (pdflatex 不可用时选择: xelatex, lualatex, tectonic, latexmk)
  • -t context: context
  • -t html: wkhtmltopdf (wkhtmltopdf 不可用时选择: prince, weasyprint, pagedjs-cli;)
  • -t ms: pdfroff

啰嗦了一大堆,总结一下,如果你安装了某个 LaTeX 发行版(比如 Tex Live),而且编译命令在 PATH 中,那么你无需指定额外的格式,直接指定输出为 PDF 即可:

pandoc test.md -o test.pdf

从网络输入数据

你也可以不指定输入的文件,而是要求 Pandoc 从一个绝对的 URI 地址读取。此种情况下 Pandoc 会使用 HTTP 协议来读取。

pandoc -f html -t markdown https://www.fsf.org

你也可以指定 UA:

pandoc -f html -t markdown --request-header User-Agent:"Mozilla/5.0" \
  https://www.fsf.org


这篇关于Pandoc 的简单使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程