Python:从.html创建自动严格设计的多页.pdf报告

时间:2017-02-07 13:48:57

标签: python html pdf matplotlib pdf-generation

从.html创建严格设计的.pdf报告有哪些基于Python的优秀选项?

我附上草稿.pdf来说明以下几点:

  • 报告的设计相当严格。换句话说,“看起来很重要”。
  • 该报告包含复杂的矢量图形(包:Matplotlib)。这些图形的大小可能略有不同。
  • 该报告包含图片。
  • 该报告包含大量动态填充的数字/字符串。
  • 最理想的解决方案是使用开源软件包。
  • 我们使用Django创建.html。
  • 报告可能跨越多个页面。

看起来好像已有大量非常多样化的软件包便于报告。仅举几例,有xhtml2pdfweasyprintdjango-wkhtmltopdf

根据我的经验,使用这些工具可以轻松地从您的内容创建.pdf。当.pdf需要陷入高度定义的设计结构时,困难的部分就出现了。不幸的是,我无法找到具有高度设计结构的不同pdf生成包的示例.pdf。

您对此有何体验?哪些选项适合您?我忽略了那些做得很好的复杂例子吗?

Some example of a strictly-designed "Looks matter" report

2 个答案:

答案 0 :(得分:4)

你可以看到这个Python包:weasyprint

网页:http://weasyprint.org/

官方文件:http://weasyprint.readthedocs.io/en/latest/

这很棒,因为您可以从网页或html文件生成PDF,您可能会与某些CSS(文档中指定的)发生冲突,但它提供了您需要的内容

答案 1 :(得分:3)

我最近使用weasyprint和jinja从html生成自动报告。它运作良好,我相信能够满足您严格的格式要求。我没有使用过其他任何一个。

我的报告包含图像,包括转换为图像的图形,正常动态生成的文本以及大型表格。所有这些都限制在9x11页面大小。 Weasyprint自动完成分页,但在这方面也具有可配置性。

我发现本指南非常有用: http://pbpython.com/pdf-reports.html

虽然我认为pandas对于html生成的图表来说是完全过度的,但是你使用它会失去很多可配置性。