如何使用pandoc将HTML转换为PDF?

时间:2017-05-25 09:56:45

标签: pandoc

我需要哪些图书馆? 我需要传递哪些命令行参数?

我已经安装了wkhtml2pdf和 我试图跑:

pandoc reports/7/report.html -t pdf -o reports/7/report.pdf

报告错误:

To create a pdf with pandoc, use the latex or beamer writer and specify
an output file with .pdf extension (pandoc -t latex -o filename.pdf).

3 个答案:

答案 0 :(得分:6)

pdf不是有效的输出格式。 latexbeamer(适用于乳胶幻灯片)是。

要创建pdf,请使用-t latex-o myoutput.pdf。您可以省略-t参数,因为.pdf中的-o默认为latex。所以你可以使用:

pandoc reports/7/report.html -t latex -o reports/7/report.pdf

或:

pandoc reports/7/report.html -o reports/7/report.pdf

答案 1 :(得分:2)

来自https://pandoc.org/MANUAL.html

  

或者,pandoc可以使用以下任何HTML / CSS到PDF引擎来创建PDF:

           

要执行此操作,请像以前一样指定扩展名为.pdf的输出文件,但添加 - pdf-engine 选项或-t context,-t html或-t ms命令行( -t html 默认为 - pdf-engine = wkhtmltopdf )。

答案 2 :(得分:2)

以下对我有用:

pandoc --pdf-engine=xelatex https://www.python.org/dev/peps/pep-0008/ -o pep8.pdf

您需要安装LaTeX发行版,例如TeX Live

如果要给链接着色,则应添加linkcolors选项。如果网页包含CJK字符,则需要指定CJKmainfont选项。一个示例如下所示:

pandoc --pdf-engine=xelatex -V colorlinks -V CJKmainfont="KaiTi" https://jdhao.github.io/2019/01/07/windows_tools_for_programmers/ -o programmer_tools.pdf

字体KaiTi支持中文字符。如果使用其他语言,则可以使用mainfont选项来指定支持网页使用的语言的字体。

如果网页包含svg图像,则还需要安装rsvg-convert才能成功将网页转换为PDF文件(请参见参考文献here)。