如何将 Markdown 文件转换为 PDF

Posted

技术标签:

【中文标题】如何将 Markdown 文件转换为 PDF【英文标题】:How to convert a Markdown file to PDF 【发布时间】:2013-07-11 21:58:06 【问题描述】:

我有一个想要转换为 PDF 的 Markdown 文件,以便我可以将它上传到 Speakerdeck。我正在使用 Pandoc 从 Markdown 转换为 PDF。

我的问题是我无法指定什么内容应该放在 PDF 的哪个页面上,因为 Markdown 不提供类似的功能。

例如,Markdown:

###Hello
* abc
* def

###Bye
* ghi
* jkl

现在我希望 Hello 成为一张幻灯片,Bye 成为 Speakerdeck 的另一张幻灯片。因此,我需要它们位于我使用 Pandoc 生成的 PDF 的不同页面上。

HelloBye 在 PDF 中位于同一页面上。

我怎样才能做到这一点?

【问题讨论】:

尝试使用 gimli ruby​​ gem。很简单,参考见blog.kushdilip.com/2014/02/… 对于未来的读者,他们可能想查看github.com/alanshaw/markdown-pdf 【参考方案1】:

通过终端(2020年测试)

下载依赖项

sudo apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utils texlive-latex-extra

尝试使用

pandoc MANUAL.txt -o example13.pdf
pandoc MANUAL.md -o example13.pdf

通过 Visual Studio Code 扩展(2020 年测试)

下载Yzane Markdown PDF扩展 在 Markdown 文件中右键单击 (md) 会出现下面的内容 选择Markdown PDF: Export (pdf) 选项

注意:表情符号在 Windows 中比在 Linux 中更好(我不知道为什么)

【讨论】:

在 Debian 上,安装这些依赖项并运行上面的命令后(使用 .md 而不是 .txt 文件),我收到一个错误:File 'letltxmacro.sty' not found. - 尽管该文件显然成为texlive-latex-base 的一部分。你知道为什么会这样吗? 不幸的是,我不知道:/ @domsson 我遇到了同样的问题。安装texlive-latex-extra 解决了它。 我们已经解决了这个问题:过多的表情符号是不必要和分散注意力的。此答案中的大多数选择都很糟糕,并且没有增加任何价值。你会注意到an 800k+ reputation moderator removed emoji from one of your posts a couple of weeks ago。这应该表明过度使用表情符号是不受欢迎的。 请不要更换它们。 在一个 debian:10 docker 镜像中,它尝试安装 1GB 的依赖项,所有这些只是为了将几千字节的 Markdown 转换为 PDF。我想知道是否有一个涉及更少开销的解决方案。【参考方案2】:

简单的在线解决方案:dillinger.io.

只需将您的 Markdown 内容粘贴到左侧的编辑器中,然后在右侧查看 (html) 预览。然后点击顶部的Export as,选择pdf

它基于open source dillinger 编辑器。

【讨论】:

pandoc 在我身上出错了,因为列表“太嵌套”(试图打印大纲导出),dillinger 工作,谢谢!【参考方案3】:

以前我使用过 npm markdown-pdf 答案。但是,在全新安装 Ubuntu 19.04 (Disco Dingo) 时,我无法正确安装它。

相反,我开始使用 Visual Studio Code 包:“Markdown PDF”

详情: 名称:Markdown PDF 编号:yzane.markdown-pdf 说明:将 Markdown 转换为 PDF 版本:1.2.0 发布者: yzane Visual Studio 市场链接:https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf

它一直运作良好。如果您在获得其他答案时遇到问题,我建议您尝试一下。

【讨论】:

我刚刚在 Windows 和 Linux 上都做了这个。在这两种情况下,安装都很容易,并且无需任何配置或设置即可正常工作。【参考方案4】:

添加到elias' answer,如果要分隔幻灯片中的文本,只需将***放在要分隔的文本之间即可。为了让您的示例出现在几页中,请这样写:

### Hello
- abc
- def

***

### Bye
- ghi
- jkl

然后使用 elias 的答案,pandoc -t beamer -o output.pdf yourInput.md

我有Ubuntu 18.10 (Cosmic Cuttlefish) 并安装了 texlive 的完整包。它对我有用。

【讨论】:

【参考方案5】:

2016 年更新:

NPM 模块:https://github.com/alanshaw/markdown-pdf

有命令行界面:https://github.com/alanshaw/markdown-pdf#usage

npm install -g markdown-pdf
markdown-pdf <markdown-file-path>

或者,在线服务:http://markdown2pdf.com

【讨论】:

使用在线服务,我不断收到Error generating PDF. 现在在线服务好像坏了。 @ÁrpádMagosányi 好吧,我在 Ubuntu 上使用它。具体什么不起作用。 适用于 Ubuntu 19.04 命令行。一些与事件相关的警告,但会生成正确的 pdf。 我测试过,表格在输出PDF中似乎没有分隔线【参考方案6】:

由于 SpeakerDeck 只接受 PDF 文件,最简单的选择是使用 Latex Beamer 后端为 pandoc

pandoc -t beamer -o output.pdf yourInput.mkd

请注意,您应该为此安装 LaTeX Beamer。

在 Ubuntu 中,您可以通过 sudo apt-get install texlive-latex-recommended 来安装它。如果你使用 Windows,你可以try this answer。

您可能还想试试 Slidy 的 HTML/CSS 输出:

pandoc --self-contained -t slidy -o output-slidy.html yourInput.mkd

它具有不错的打印输出,您可以查看trying to print the original。

阅读more about slideshows with pandoc here。

【讨论】:

pandoc -t beamer -o output.pdf yourInput.mkd 只生成一个 pdf 页面。多余的内容被剪掉了。 @alhelal 这里有同样的问题。有什么提示吗? @rkioji 尝试其他答案中的提示,在要分页的位置添加 *** apt-get install latex-beamer 不起作用,因为不可用 @Timo 谢谢,我刚刚检查过,截至今天,beamer 现在包含在texlive-latex-recommended 中,所以这是要使用的包名称。我会更新答案。【参考方案7】:

你可以试试Typ。 getting started documentation 以与您描述的方式类似的方式从 Markdown 创建 PDF。

【讨论】:

【参考方案8】:

我已经设法获得了一个稳定的 Markdown -> HTML > PDF 管道与 MarkReport 项目一起使用。

它比 Pandoc 做的要多一点,因为它基于 WeasyPrint,因此旨在用于干净的报告发布,包括封面、标题、部分...... 它还通过语法高亮和 LaTeX 方程丰富了 HTML。

【讨论】:

小提示:pandoc 也可以通过 WeasyPrint 导出。 (很有用,例如,在从包含引用的文档中定位 HTML 时)。

以上是关于如何将 Markdown 文件转换为 PDF的主要内容,如果未能解决你的问题,请参考以下文章

如何把 Markdown 文件转化为 PDF

如何把 Markdown 文件转化为 PDF

如何把 Markdown 文件转化为 PDF

如何把 Markdown 文件转化为 PDF

如何将 word 文件转换为 markdown 文件

markdown文件怎么转换成html或者pdf文件