我使用pdfkit和wkhtmltopdf来生成pdf文档。当我生成第一个pdf时,一切都很好。当我快速(在5秒内)生成另一个错误时,我得到错误Errno 9坏文件描述符。如果我关闭错误(在浏览器中退一步)并再次打开,它将创建pdf。
我的views.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也许重要的一点是:我在IIS8上运行这个站点,当从命令行(python )运行时,错误并不存在。
任何关于如何处理这个错误的指导方针都是很好的。
发布于 2015-06-29 16:27:57
当我快速(在5秒内)生成另一个
这一点表明您的代码是完美无缺的,问题在于您的浏览器拒绝URL,就像Peter建议的那样。
很可能错误的原因是file buffer flush。考虑在适当的地方冲洗缓冲器。
发布于 2015-06-30 12:41:48
由于没有进一步的信息,我会把我的评论转换成一个答复.
最有可能的问题是,当您尝试快速重新加载(通过from_url)时,您的URL被web服务器拒绝,或者您在访问要创建的本地文件时遇到问题。
您可以通过直接将False作为输出文件名传递给变量(例如pdf = pdfkit.from_url('google.com', False) )来消除后者。
如果这不能解决这个问题,那么您的问题几乎肯定是服务器拒绝URL -因此您需要查看该服务器上的诊断信息。
https://stackoverflow.com/questions/30966151
复制相似问题