我在使用Django的网站上工作,我使用Repotlab打印.pdf文件。
现在,我希望文件有多个页面,我该怎么办?
我的代码:
from reportlab.pdfgen import canvas
from django.http import HttpResponse
def Print_PDF(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="resume.pdf"'
p = canvas.Canvas(response)
p.drawString(100, 100, "Some text in first page.")
p.drawString(200, 100, "Some text in second page.")
p.drawString(300, 100, "Some text in third page")
p.showPage()
p.save()
return response
提前致谢。
答案 0 :(得分:36)
showPage()
尽管名称令人困惑,但实际上会结束当前页面,因此在调用它后在画布上绘制的任何内容都将在下一页上显示。
在您的示例中,您可以在每个p.showPage()
示例后使用p.drawString
,它们都会显示在自己的页面上。
def Print_PDF(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="resume.pdf"'
p = canvas.Canvas(response)
p.drawString(100, 100, "Some text in first page.")
p.showPage()
p.drawString(200, 100, "Some text in second page.")
p.showPage()
p.drawString(300, 100, "Some text in third page")
p.showPage()
p.save()
return response