我正在尝试使用django中的reportlab生成pdf报告。我可以通过直接使用画布来获得一个简单的报告,但看起来platypus应该会让事情变得更容易。但我无法得到一份简单的鸭嘴兽报告。
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'])
。我做错了什么?
答案 0 :(得分:1)
你得到'module' object is unsubscriptable
,因为你正在处理模块,因为它是一个数组:)
如果您浏览reportlab的源代码,那么您将看到样式只是一个包含大量内容的模块。
要使此示例生效,您需要导入样式表:from reportlab.lib.styles import getSampleStyleSheet
然后styles = getSampleStyleSheet()
。
或者您可以创建自己的样式表 - 查看reportlab关于如何执行此操作的文档:)