Несколько страниц с использованием Reportlab - Django

Я работаю на сайте с использованием Django, и я печатаю файл .pdf с помощью Repotlab.

Теперь, я хочу, чтобы файл имел несколько страниц, как я могу это сделать?

Мой код:

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.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