我的观点设置如下:
视图.py
class PDFTemplateView(TemplateView):
Model = TemplateInfo
template_name = 'hello.html'
def get(self, *args, **kwargs):
obj = self.Model.objects.get(id = kwargs['pk'])
html = get_template(self.template_name).render(Context({'object' : obj}))
result = StringIO.StringIO()
rendering = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
if not rendering.err:
return HttpResponse(result.getvalue(), mimetype='application/pdf')
return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))
我在这个提要中找到了一个定义fetch_resource()
函数的解决方案,但这对我没有帮助。我阅读了文档,没有这个功能我会更好。
这是我的模板“hello.html”
<style type="text/css">
@page {
background-image: url('/media/image/mainbg.jpg'); #this wouldnot give image too
size: letter portrait;
@frame header_frame { /* Static Frame */
-pdf-frame-content: header_content;
left: 50pt; width: 512pt; top: 50pt; height: 40pt;
-pdf-frame-border: 1; /* for debugging the layout */
}
@frame content_frame { /* Content Frame */
left: 50pt; width: 512pt; top: 90pt; height: 632pt;
-pdf-frame-border: 1; /* for debugging the layout */
}
@frame footer_frame { /* Another static Frame */
-pdf-frame-content: footer_content;
left: 50pt; width: 512pt; top: 772pt; height: 20pt;
-pdf-frame-border: 1; /* for debugging the layout */
}
</style>
</head>
<div id="header_content">Lyrics-R-Us</div>
<div id="footer_content">(c) - page <pdf:pagenumber>
of <pdf:pagecount>
</div>
<ul>
<li>{{ object.emp_name }}</li>
<li>{{ object.designation }}</li>
<li>{{ object.image.url }}</li>
</ul>
到目前为止,一切似乎都很好。但我无法在 pdf 中获取图像。这{{ object.image.url}}
给了我一个 pdf 中的路径字符串,但不是图像。我是不是错过了什么。请帮帮我。我已经被困了几个小时了。