如何使用 Pandoc 将 Markdown 页面放到新的 PDF 页面上?

问题描述 投票:0回答:2

Pandoc 允许用户将多个 Markdown 输入文件翻译为一个 PDF 文件。

pandoc --pdf-engine=xelatex -o test.pdf *.md

通过此调用,所有 Markdown 页面都会在 PDF 输出中连续列出,而不会出现任何新页面。我想为每个 Markdown 文件创建一个新的 PDF 页面。

如何在每个插入的 Markdown 文件之后或之前添加

\newpage

markdown pandoc pdflatex xelatex
2个回答
2
投票

如果您使用 GNU awk,即

gawk
,具有多个文件,它有一个在每个文件末尾触发的扩展名,因此您可以使用它来插入 “newpage” 命令,如下所示:

gawk '1; ENDFILE{print "\\newpage"}' *.md | pandoc --pdf-engine=xelatex -o test.pdf

1
中的
gawk
计算结果为“True”,这会导致
gawk
执行其默认操作,即打印当前行,这意味着除了“newpage”之外,所有行都会被打印每个文件末尾的命令。


如果您添加

sed
选项来将每个文档视为单独的文档,那么您可能可以使用 GNU
-s
获得相同的结果,这样您就可以为每个文档获得单独的 “最后一行”

sed -se '$a\\\newpage' doc*.md | pandoc ...

0
投票

您可以使用简单的 Python 脚本,无需 Pandoc,如下所示:

pip install markdown-pdf

from markdown_pdf import Section, MarkdownPdf

pdf = MarkdownPdf()

# each section (content of single md file) starts from new page in pdf file
pdf.add_section(Section(open("file1.md").read()))  # page 1
pdf.add_section(Section(open("file2.md").read()))  # page 2

pdf.save("out.pdf")
© www.soinside.com 2019 - 2024. All rights reserved.