【问题标题】:Generate document with plots based on template, Python3基于模板生成带有图的文档,Python3
【发布时间】:2012-02-13 15:54:27
【问题描述】:

我有一个 Python3 GUI,用户可以在其中选择某些值进行统计评估和/或绘制(历史)。

根据用户的请求,我想在此 GUI 之外创建一个报告,最好采用 DOC 或/和 ODT 或/和 PDF 格式。报告的布局几乎是固定的,将改变的是:所选度量的名称和相应的值(始终显示三个度量 - 用户选择哪个),matplotlib 直方图(将根据所选设置而变化) 、用户名、日期等

在一些较旧的线程中,我找到了对 pod 包的引用,它看起来非常接近我的需求。但是我没有找到任何关于生成的文档的好的说明。最重要的是,我不确定那里是否允许使用图像 - 我会想象在文档角落的某处为图像保留一个位置,并在用户请求报告时更新它。

EDIT1pod 不支持 Python3,在 2to3 转换和几个小修复之后也是如此。有一个使用 LaTeX 的建议,但我不确定我是否理解如何在不进行非常低级别的编码的情况下实现这个想法。

非常感谢任何建议,因为项目的其余部分已接近完成,这是最后一个未解决的大问题。

EDIT2:休息一段时间后,我回到这个问题。由于我的 GUI 在 PyQt4 中,我最终决定使用 QTextDocument 并将文档打印为 PDF。在这种方法中,我有一些不清楚的时刻,比如我是否应该使用 QTextCursor 并以编程方式创建文档或首先以某种方式创建 HTML。另外,我必须弄清楚如何在不显示编辑器窗口的情况下创建文档。欢迎任何带有示例的参考。到目前为止,我在 PyQt4\examples\richtext 中只找到了几个示例,但它们并没有回答我所有的问题。

【问题讨论】:

  • LaTeX 依赖是否可以接受?
  • 我会避免额外的依赖,但如果这种方法有某些优点 - 是的,乳胶是可以接受的。更重要的是,理想情况下,我希望看到用户可以编辑模板,此时我不想要任何 Latex 依赖项。用户不应该是技术先进的。
  • 哦,用户应该编辑模板?那是一个完全不同的故事。您认为您的用户能够处理某种定制的 XML 格式吗?
  • 好吧,最终用户可能不会。但是我有一个中级用户想稍微配置一下,而不是问自己每一个小改动。但这确实是可选的。这就是为什么我说“idelly”:)
  • 大多数最著名的 Python PDF 生成库似乎还没有移植到 Python 3.x,所以除非有人知道更好的解决方案,否则您现在可能不得不使用 LaTeX。

标签: python python-3.x reporting pyqt4


【解决方案1】:

我现在尝试查看 ReportLab - 它不提供 DOC(仅 PDF),但似乎很灵活。正如我从FAQ 了解到的,图像是允许的,但我必须首先将它们从 matplotlib 中保存为 jpeg(PIL 尚不适用于 Python3)。我希望我不会以极低级别的编程来创建报告...

【讨论】:

  • 如果他们的download page 没有声明它仅适用于 Python 2.x,我会推荐 ReportLab。
  • 由于您使用的是matplotlib(到目前为止您没有提到),您可能想看看this FAQ entry on saving multiple plots to a PDF file
  • 哦,谢谢你提醒我检查 Python3 支持——我没看过的东西……看看你的链接,谢谢!
【解决方案2】:

终于解决了问题。最后并没有那么困难,我最终使用 QTextDocument 及其 setHtml 方法来生成所需的文档。与代码相关的问题是here

【讨论】:

    猜你喜欢
    • 2010-09-10
    • 1970-01-01
    • 2011-03-14
    • 2018-07-14
    • 1970-01-01
    • 2019-12-10
    • 2019-12-11
    • 2020-08-23
    • 1970-01-01
    相关资源
    最近更新 更多