5

假设我有一个 HTML / CSS 页面,其中包含一些图像,我想从 Python 中的源代码生成 PDF - 可能吗?

4

3 回答 3

4

http://www.xhtml2pdf.com/

install 对我来说有点古怪,但除此之外它工作得很好。

于 2009-04-24T16:00:53.060 回答
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 以使其在 Pisa 中尽可能好地运行。

于 2009-04-24T16:11:01.087 回答
4

wkhtmltopdf 是我最近开始用于我的项目的一个可能更好的选择。它不仅支持几乎完整的 CSS,还支持 javascript。首先尝试 wkhtmltopdf 命令以了解它的强大功能。然后你使用它的python扩展。

这里是链接

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

于 2011-11-03T18:28:16.013 回答