如何从Python中的HTML / CSS(包括图像)源生成PDF?

时间:2009-04-24 15:54:43

标签: python html css pdf pdf-generation

假设我有一个带有一些图像的HTML / CSS页面,我想用Python生成一个来自该源的PDF - 可能吗?

3 个答案:

答案 0 :(得分:4)

http://www.xhtml2pdf.com/

安装对我来说有点古怪,但除此之外它工作正常。

答案 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扩展名。

以下是链接

安装对我来说有点棘手。所以我写了这个快速而又脏的脚本。