【问题标题】:Python: Create automated strictly-designed multi-page .pdf report from .htmlPython:从 .html 创建自动化的、严格设计的多页 .pdf 报告
【发布时间】:2017-06-24 19:06:20
【问题描述】:

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

我附上了一份 .pdf 草案来说明以下几点:

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

看起来好像已经有大量非常多样化的包促进报告。仅举几例,有xhtml2pdfweasyprintdjango-wkhtmltopdf

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

您对此有何经验?哪些选项适合您?有没有我忽略的做得好的复杂示例?

【问题讨论】:

标签: python html pdf matplotlib pdf-generation


【解决方案1】:

你可以看到这个 Python 包:weasyprint

网页:http://weasyprint.org/

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      相关资源
      最近更新 更多