无法回复马戏团中的pdf文件

时间:2013-05-03 06:42:06

标签: pyramid wkhtmltopdf circusd

我已经完成了实现print pdf功能。我使用金字塔 wkhtmltopdf jinja2 来生成pdf。它在 gunicorn 中工作正常。但是,当我将其部署到生产环境时(我使用 circusd 在生产环境中运行),该函数将失败,并且不会显示任何错误消息。源代码如下:

pdf_renderer = PDFRenderer()

request = self.request

html = render('test.jinja2' , pdf_data, request)

response = request.response
response.write(pdf_renderer(html))
response.content_type = 'application/pdf'
response.headerlist.append(('Content-Disposition', 'attachment; filename='test.pdf'))

#Everything is ok except the final statement.
#circusd cannot run the statement "return response"
#However, gunicorn can do it
return response

那么,您对我的问题有任何建议或想法吗?它是如此直接,我无法理解为什么它在 gunicorn 中工作正常但在马戏团

中失败

1 个答案:

答案 0 :(得分:1)

尝试设置content_length。您正在使用的WSGI服务器可能不支持流式响应(如果您使用.write().app_iter而未设置content_length,则会发生这种情况)。对于您的用例,您更乐意设置body来为您处理所有事情。

response.body = pdf_renderer(html)