30

我正在使用 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

提前致谢。

4

1 回答 1

60

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
于 2013-09-06T19:05:34.433 回答