Angenommen, ich habe eine HTML/CSS-Seite mit einigen Bildern, und ich wollte ein PDF aus dieser Quelle in Python generieren - möglich?Wie erstelle ich eine PDF aus einer HTML/CSS (einschließlich Bilder) Quelle in Python?
Antwort
installieren war ein wenig für mich schrullig, aber es funktionierte ansonsten in Ordnung.
Gerade lief das nach dem Posting. Perfekt arbeiten! –
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.
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.
Ich wünschte, ich könnte +2 für das Skript geben! Vielen Dank! – heltonbiker
nur eine einmalige oder als Teil eines „diese Seite als PDF“ -Button auf einer Webseite? Welche Plattform? Mit Mac OS X können Sie jede Webseite als PDF speichern. –