Django ReportLab多页使用框架

时间:2016-04-03 01:43:53

标签: python django reportlab

我需要使用reportlab将长字符串打印成pdf。代码如下。问题是,代码只要是一个页面就可以工作,但是当内容太长并且需要至少2个页面时,longString变量不会打印到pdf中。如果字符串太长,我该怎么做才能添加换行符。

response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment;     filename="somefilename.pdf"'

    # Create the PDF object, using the response object as its "file."
    c = canvas.Canvas(response)

# Draw things on the PDF. Here's where the PDF generation happens.
# See the ReportLab documentation for the full list of functionality.
longString= ""



styles = getSampleStyleSheet()
styleN = styles['Normal']
styleH = styles['Heading1']
story = []
story.append(Paragraph("This is a Heading",styleH))
story.append(Paragraph(longString, styleN))

f = Frame(inch, inch, 7*inch, 10*inch, showBoundary=0)
f.addFromList(story,c)
c.showPage()
c.save()

return response

1 个答案:

答案 0 :(得分:0)

这不起作用的原因是您使用canvas来构建文档。为了让platypus添加新页面,您需要使用文档模板,例如doc = BaseDocTemplate(pdf_file)。然后使用doc.build(story)来构建您的pdf。

这应该可以解决您的问题,因为我正在尝试使用手机上的stackoverflow应用程序发布此答案我无法给您更正的代码,但如果您遇到问题我很乐意这样做。