使用 Reportlab 的多个页面 - Django
Posted
技术标签:
【中文标题】使用 Reportlab 的多个页面 - Django【英文标题】:Multiple pages using Reportlab - Django 【发布时间】:2013-09-10 22:26:00 【问题描述】:我在一个使用 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
提前致谢。
【问题讨论】:
【参考方案1】:showPage()
,尽管名称令人困惑,但实际上会结束当前页面,因此您在调用后在画布上绘制的任何内容都会进入下一页。
在您的示例中,您可以在每个 p.drawString
示例之后使用 p.showPage()
,它们都会出现在自己的页面上。
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
【讨论】:
我已经知道了,但我无法回答我的名誉问题。您的答案完美,非常感谢。 感谢您简单明了的解释和示例。 当我使用 drawString 方法时,文本会显示在下一页中,但如果我创建一个新的 PDFTextObject 并绘制线条,则不会发生任何事情...以上是关于使用 Reportlab 的多个页面 - Django的主要内容,如果未能解决你的问题,请参考以下文章
Python Reportlab PDF - 在页面上居中文本
我可以在 Python 中使用 ReportLab 获取格式化的文本大小吗?