有没有直接的方法可以通过python从markdown文件生成pdf [关闭]
Posted
技术标签:
【中文标题】有没有直接的方法可以通过python从markdown文件生成pdf [关闭]【英文标题】:Is there any direct way to generate pdf from markdown file by python [closed] 【发布时间】:2011-05-07 07:51:02 【问题描述】:作为标题,我想使用markdown作为我的主要编写格式,我需要使用纯python从markdown生成PDF文件。
【问题讨论】:
已经有很多库可以做这种事情了。一个快速的谷歌出现了 pandoc (johnmacfarlane.net/pandoc),它看起来相当不错,虽然它不是在 Python 中。 github.com/n1k0/landslide 是纯 Python。 山崩看起来与 pdf 或降价无关。我是否错过了它可以做的事情? 它从 Markdown(或 ReStructured Text)创建幻灯片演示,并可以将它们导出为 PDF。也许对所问的内容有点专业。 我相信 pandoc 也经历过(巨大的)TeX。 这是我发现的最简单的方法(也是唯一对我有用的方法),它使用 GRIP。 (Link) 【参考方案1】:我已经完成并将分两步完成。首先,我会使用 python-markdown 将我的 Markdown 制作成 html,然后我会使用 xhtml2pdf 制作 PDF 文件。
编辑(2014 年):
如果我现在这样做,我可能会选择WeasyPrint 作为我的 HTML 转 PDF 工具;它做得很好,我最近在几个项目中使用它。
【讨论】:
对于这个问题,您的原始答案更好,因为 WeasyPrint 虽然可能更好,但不是“纯 Python”。或者,完全准确; WeasyPrint 本身可能是纯 python,但它依赖于其他不是的模块。 我没有想到这一点。谢谢你的澄清。 有几个库可以将 HTML 转换为 PDF。我使用的是PyMuPDF,它可以打开一个HTML文档并使用convert_to_pdf方法生成PDF。链接页面上的示例。【参考方案2】:2015 年更新:
我会使用pdfkit 和Python-Markdown 的组合。虽然这不是一个纯 Python 解决方案,但我发现它效果最好,尤其是在您使用 Python 3 时。
首先,安装 prereq(或在此处下载:http://wkhtmltopdf.org/downloads.html):
# Ubuntu
apt-get install wkhtmltopdf
然后,必要的 Python 包:
pip install pdfkit
pip install markdown
那么就真的很简单了:
from markdown import markdown
import pdfkit
input_filename = 'README.md'
output_filename = 'README.pdf'
with open(input_filename, 'r') as f:
html_text = markdown(f.read(), output_format='html4')
pdfkit.from_string(html_text, output_filename)
【讨论】:
但是 wkhtmltopdf 需要一个 xserver:github.com/JazzCore/python-pdfkit/wiki/… 成功了,但是字体太小了,怎么配置? @HumoyunAhmad 在写入 pdf 之前将 CSS 链接元素插入到 html_text 中,并将您的样式放入该单独的文件中。这不是微不足道的,我们应该在这个答案中提供一个自定义 CSS 文件的例子。请注意,您可以通过将 html_text 直接写入 html 文件并在继续之前确保它是好的来更好地调试它。 @HumoyunAhmad 我在答案中添加了一个更高级的示例,也可以解决您的问题。以上是关于有没有直接的方法可以通过python从markdown文件生成pdf [关闭]的主要内容,如果未能解决你的问题,请参考以下文章