2009-04-24 5 views

Antwort

4

http://www.xhtml2pdf.com/

installieren war ein wenig für mich schrullig, aber es funktionierte ansonsten in Ordnung.

+0

Gerade lief das nach dem Posting. Perfekt arbeiten! –

4

Sie können etwas tun Pisa mit:

def receipt(request, id): 
    import ho.pisa as pisa 
    from django.template.loader import render_to_string 
    from datetime import datetime 

    r = get_or_404(id, request.affiliate)  
    now = datetime.now() 
    contents = render_to_string('home/reservations/receipt.html', { 
     'reservation': r, 
     'today': now 
    }) 
    filename = now.strftime('%Y-%m-%d') + '.pdf' 
    response = HttpResponse(mimetype='application/pdf') 
    response['Content-Disposition'] = 'attachment; filename=' + filename 
    pdf = pisa.CreatePDF(contents, response) 
    if pdf.err: 
     message(request, 'Unable to generate the receipt.') 
     return HttpResponseRedirect(reverse('view_reservation', args=[r.id]))  
    else: 
     return response 

(Dies ist eine Django-Ansicht, die eine Quittung erzeugt aber offensichtlich können Sie Pisa in jeder Einstellung verwenden)

Sie haben werden um den HTML-Code so anzupassen, dass er mit Pisa so gut wie möglich abgespielt wird.

4

Es gibt wkhtmltopdf eine möglicherweise bessere Option, die ich vor kurzem für mein Projekt verwendet habe. Es unterstützt nicht nur fast komplettes CSS, sondern auch Javascript. Probieren Sie zuerst den Befehl wkhtmltopdf aus, um seine Stärke zu verstehen. Dann verwenden Sie seine Python-Erweiterung.

Hier sind Links

Es war etwas heikel für mich zu installieren. Also habe ich dieses schnelle und schmutzige Skript geschrieben.

+2

Ich wünschte, ich könnte +2 für das Skript geben! Vielen Dank! – heltonbiker