我使用pdfkit和wkhtmltoppdf生成pdf文档。当我生成第一个pdf时一切都很好。当我快速(在5秒钟内)生成另一个文件时,我得到错误[Errno 9]错误的文件描述符。如果我关闭错误(在浏览器中后退一步)并再次打开,它将创建pdf。在
我的视图.py在
config = pdfkit.configuration(wkhtmltopdf='C:/wkhtmltopdf/bin/wkhtmltopdf.exe')
pdfgen = pdfkit.from_url(url, printname, configuration=config)
pdf = open(printname, 'rb')
response = HttpResponse(pdf.read())
response['Content-Type'] = 'application/pdf'
response['Content-disposition'] = 'attachment ; filename =' + filename
pdf.close()
return response
可能需要注意的是:当从命令行(python)运行时,我在IIS8上运行这个站点管理.pyrunserver)错误不存在。在
任何关于如何处理这个错误的指导方针都是很好的。在
如果没有进一步的信息,我将把我的评论转换成一个答案。。。在
最有可能的问题是,当您尝试快速重新加载(通过from_URL)时,您的URL被web服务器拒绝,或者您在访问试图创建的本地文件时遇到问题。在
您可以通过将False作为输出文件名直接写入变量来消除后者,例如
pdf = pdfkit.from_url('google.com', False)
。在如果这不能解决问题,那么您的问题几乎可以肯定是服务器拒绝了该URL,因此您需要查看该服务器上的诊断信息。在
这一点表明你的代码是完美的,问题在于你的浏览器拒绝了Peter建议的URL。在
错误的原因很可能与file buffer flush有关。考虑在适当的地方冲洗缓冲器。在
相关问题 更多 >
编程相关推荐