1

我正在尝试使用 django 中的 reportlab 生成 pdf 报告。我可以通过直接使用画布来开始一个简单的报告,但看起来鸭嘴兽应该让事情变得更容易。但我无法得到一份简单的鸭嘴兽报告。

def all_comps_pdf_report(request):

    # Set up HttpResponse object
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename=all_competencies.pdf'

    from reportlab.platypus.doctemplate import SimpleDocTemplate
    from reportlab.platypus import Paragraph
    from reportlab.lib import styles

    doc = SimpleDocTemplate(response)
    Elements = []
    p = Paragraph("Hello World", styles['Heading1'])
    Elements.append(p)
    doc.build(Elements)
    return response

我收到一个错误'module' object is unsubscriptable,这是在抱怨这条线p = Paragraph("Hello World", styles['Heading1'])。我究竟做错了什么?

4

1 回答 1

1

你得到'module' object is unsubscriptable是因为你将模块视为一个数组:)

如果您浏览reportlab 的源代码,您会发现样式只是一个包含很多内容的模块。

为了使这个示例正常工作,您需要导入样式表:from reportlab.lib.styles import getSampleStyleSheet然后styles = getSampleStyleSheet().

或者您可以创建自己的样式表 - 查看 reportlab 的文档以了解如何做到这一点:)

于 2011-08-21T18:39:11.070 回答