Mar*_*ter 13 command-line pdf markdown pandoc
在命令行中将 markdown 转换为 pdf 最简单的工具是什么?
我找到了人们建议使用的howtos pandoc,但所需的包需要千兆字节的依赖项:
apt-get install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utils texlive-latex-extra
Run Code Online (Sandbox Code Playgroud)
是否有一些最小的工具可以在命令行中将简单的 markdown 转换为 pdf,并且不需要大量的依赖项?
我使用的是 Debian 10。
这里介绍的所有方法仍然以某种方式使用 pandoc,因为问题中提到的千兆字节下载来自texlive-*给定apt-get命令 \xe2\x80\x93 中的 LaTeX ( ) 包,这些都不是必需的。该pandoc软件包本身的下载大小约为 17MB,这对于您的用例来说可能可以接受,也可能不可接受。
如果您真的非常不想使用 pandoc,那么您可以使用lunamark代替。它与 pandoc 类似(两个工具共享同一作者),但 lunamark 是用 Lua 编写的,Lua 是一种非常小而精简的语言,占用空间很小。但没有可用的 Debian 软件包,您必须自己构建它。但是,如前所述,主要问题是 PDF 创建:所有好的 PDF 库都必须进行字体处理,这通常需要大量库可用。
\n我不知道有什么工具可以直接从 Markdown 转换为 PDF,通常的方法是先使用中间格式。该格式的选择决定了您的选择。
\ngroff:GNU troff 是 troff 文本格式化程序的实现。它是诸如 之类的工具的基础man,速度非常快,并且还可以生成漂亮的 PDF 输出。您将需要groff和ghostscript软件包,然后使用以下命令调用 pandoc
pandoc --pdf-engine=pdfroff --output=out.pdf ...\nRun Code Online (Sandbox Code Playgroud)\n这可能是需要最少且最小的附加包的解决方案。确保apt-get不会安装任何不必要的软件包:
apt-get install pandoc groff ghostscript --no-install-recommends\nRun Code Online (Sandbox Code Playgroud)\n在新设置的系统上,这为您提供了
\nNeed to get 38.3 MB of archives.\nAfter this operation, 194 MB of additional disk space will be used.\nRun Code Online (Sandbox Code Playgroud)\nHTML:有多个 HTML 到 PDF 转换器,pandoc 可以使用其中两个(当前版本为三个)引擎来处理从 Markdown 到 PDF 的转换。您可以选择weasyprint用 Python 编写的 和wkhtmltopdf构建在 Chromium 中使用的 webkit HTML 引擎之上的 。安装其中任何一个,然后使用
pandoc --pdf-engine=weasyprint\nRun Code Online (Sandbox Code Playgroud)\n或者
\n pandoc --pdf-engine=wkhtmltopdf\nRun Code Online (Sandbox Code Playgroud)\nwkhtmltopdf如果您已经安装了许多图形和字体包,那么这尤其可能是一个不错的选择。例如,在安装了 LXDE 桌面环境的系统上,您会看到:
% apt-get install pandoc wkhtmltopdf --no-install-recommends\n... [omitted] ...\nNeed to get 16.4 MB of archives.\nAfter this operation, 122 MB of additional disk space will be used.\nRun Code Online (Sandbox Code Playgroud)\n然而,对于一个全新的系统来说,影响会更大:
\nNeed to get 91.1 MB of archives.\nAfter this operation, 530 MB of additional disk space will be used.\nRun Code Online (Sandbox Code Playgroud)\nLaTeX with Docker:这种方法实际上是再次使用 LaTeX,但我们没有将其安装在我们的系统上,而是使用包含 pandoc 的 Docker 映像,并且仅包含最少的 LaTeX 包,使其相对较小。您将需要该docker.io包,然后运行这个冗长的命令:
pandoc --pdf-engine=pdfroff --output=out.pdf ...\nRun Code Online (Sandbox Code Playgroud)\n这样做的优点是您将使用最新的 pandoc 和 LaTeX 版本,并且它提供了最好看的 PDF(恕我直言)。然而,Docker 镜像的大小仍然约为 200MB,而且 Docker 本身也很大(>90MB 下载大小)。
\nLibreOffice:只有当您已经安装了 LibreOffice 时,此方法才有意义,因为它是一个非常大的依赖项。在这种情况下,可以使用 pandoc 转换为odt或docx,然后可以使用以下命令将其转换为 PDF
lowriter --headless --convert-to pdf intermediary.odt\nRun Code Online (Sandbox Code Playgroud)\n我希望其中之一能满足您的需求。
\n