Diciamo che ho una pagina HTML/CSS con alcune immagini al suo interno, e volevo generare un PDF da quella fonte in Python - possibile?Come generare un PDF da un sorgente HTML/CSS (incluso immagini) in Python?
risposta
installare era un po 'eccentrico per me, ma per il resto ha funzionato bene.
L'ho appena incontrato dopo la pubblicazione. Funzionando perfettamente! –
Si può fare qualcosa di simile utilizzando Pisa
:
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
(Questa è una vista Django che genera una ricevuta, ma ovviamente è possibile utilizzare Pisa in qualsiasi ambiente)
Stai andando ad avere per modificare l'HTML per farlo suonare il più bello possibile con Pisa, però.
C'è wkhtmltopdf un'opzione forse migliore che ho recentemente iniziato a utilizzare per il mio progetto. Non supporta solo CSS quasi completo, ma anche javascript. Prova prima il comando wkhtmltopdf per capire che è potente. Quindi si usa la sua estensione Python.
Ecco i link
E 'stato un po' difficile da installare per me. Così ho scritto questo script veloce e sporco.
Vorrei poter dare +2 per la sceneggiatura! Grazie! – heltonbiker
una sola volta o come parte di un pulsante "scaricare la pagina come PDF" su una pagina web? Quale piattaforma? Mac OS X ti consente di salvare qualsiasi pagina web come PDF. –