【发布时间】:2010-10-21 15:36:09
【问题描述】:
假设我有一个 HTML / CSS 页面,其中包含一些图像,我想用 Python 从该源生成 PDF - 可能吗?
【问题讨论】:
-
仅一次或作为网页上“将此页面下载为 PDF”按钮的一部分?什么平台? Mac OS X 允许您将任何网页保存为 PDF。
标签: python html css pdf pdf-generation
假设我有一个 HTML / CSS 页面,其中包含一些图像,我想用 Python 从该源生成 PDF - 可能吗?
【问题讨论】:
标签: python html css pdf pdf-generation
安装对我来说有点奇怪,但除此之外它运行良好。
【讨论】:
你可以用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 中的表现尽可能好。
【讨论】:
wkhtmltopdf 是我最近开始用于我的项目的一个可能更好的选择。它不仅支持几乎完整的 CSS,还支持 javascript。首先尝试 wkhtmltopdf 命令以了解它的强大功能。然后你使用它的 python 扩展。
这里是链接
安装对我来说有点棘手。所以我写了这个又快又脏的脚本。
【讨论】: