Alv*_*aro 9 pdf django pdf-generation django-templates weasyprint
正如在文档页面中所说,我在我的html文件中定义了一个img标记,如下所示:
<img src='{% static 'image.png' %}'/>
Run Code Online (Sandbox Code Playgroud)
这个url存在于服务器中,我甚至使用http响应创建了一个不同的视图,图像显示得很好.以下是两个视图的代码:
pdf-weasyprint视图:
def card_view(request):
template = loader.get_template('card.html')
context = {'sample': None
}
html = template.render(RequestContext(request, context))
response = HttpResponse(mimetype='application/pdf')
HTML(string=html).write_pdf(response)
return response
Run Code Online (Sandbox Code Playgroud)
html视图:
def card_view2(request):
context = {'sample': None,
}
return render_to_response('card.html', context,
context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
我认为默认的url fetcher应该找到并渲染图像(这是一个png - 所以不应该涉及任何格式问题)任何想法?任何帮助,将不胜感激!!
Sim*_*pin 27
究竟是什么问题?你在日志中得到了什么吗?(如果服务器未记录stderr,则可能需要配置日志记录.)生成的HTML是什么样的?
我真的需要上面的答案来确认,但我的猜测是图像的URL是相对的,但HTML(string=...)
WeasyPrint不知道什么是基本URL.尝试这样的事情.(我不确定Django的细节.)
HTML(string=html, base_url=request.build_absolute_uri()).write_pdf(response)
Run Code Online (Sandbox Code Playgroud)
这将在您的应用程序上发出真正的HTTP请求,这可能会在单线程服务器上死锁.(我认为开发服务器默认为单个线程.)
为了避免这种情况以及通过网络的成本,您可能需要考虑编写自定义的"URL fetcher".它可以是从专业到这一个图像的任何地方,到完全相当于Flask-WeasyPrint的 Django .
归档时间: |
|
查看次数: |
5535 次 |
最近记录: |