web-dev-qa-db-ja.com

Reportlabを使用した複数のページ-Django

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

前もって感謝します。

20
Andres

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
_
37
Nitzle