2013-09-06 15 views
15

Sto lavorando in un sito usando Django e stampo un file .pdf usando Repotlab.Più pagine usando Reportlab - Django

Ora, voglio che il file abbia più pagine, come posso farlo?

Il mio codice:

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 

Grazie in anticipo.

risposta

28

showPage(), nonostante il suo nome confuso, in realtà finirà la pagina corrente, quindi tutto ciò che disegni sulla tela dopo averlo chiamato andrà alla pagina successiva.

Nell'esempio, è possibile utilizzare solo p.showPage() dopo ogni esempio p.drawString e verranno visualizzati tutti nella propria pagina.

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 
+1

Ho già capito, ma non potevo rispondere per la mia reputazione. La tua risposta è ** perfetta **, grazie mille. – Andres