假设我有一个带有一些图像的HTML / CSS页面,我想用Python生成一个来自该源的PDF - 可能吗?
答案 0 :(得分:4)
安装对我来说有点古怪,但除此之外它工作正常。
答案 1 :(得分:4)
您可以使用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
(这是一个生成收据的Django视图,但显然你可以在任何设置中使用Pisa)
尽管如此,你将不得不调整HTML以使其尽可能地发挥出色。
答案 2 :(得分:4)
wkhtmltopdf是我最近开始用于我的项目的可能更好的选择。它不仅支持几乎完整的CSS,还支持javascript。首先尝试使用wkhtmltopdf命令来了解它的强大功能。然后你使用它的python扩展名。
以下是链接
安装对我来说有点棘手。所以我写了这个快速而又脏的脚本。