我正在尝试使用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'])。我做错了什么?
发布于 2011-08-22 02:39:11
您之所以获得'module' object is unsubscriptable,是因为您将模块视为一个数组:)
如果你浏览一下reportlab的源代码,你会发现样式只是一个包含了很多东西的模块。
要使这个示例起作用,您需要导入样式表:from reportlab.lib.styles import getSampleStyleSheet,然后导入styles = getSampleStyleSheet()。
或者,您可以创建自己的样式表-查看报告实验室的文档,了解如何做到这一点:)
https://stackoverflow.com/questions/7139985
复制相似问题