4 EYLÜL 2009, Cuma
Render Django sitedeki PDF için HTML
Django destekli sitem için, dinamik html sayfaları pdf dönüştürmek için kolay bir çözüm arıyorum.
Sayfaları HTML ve Google görselleştirme API grafikler javascript tabanlı, henüz bu grafikler bir zorunluluktur da dahil olmak üzere) vardır.
CEVAP
4 EYLÜL 2009, Cuma
Reportlab çözümü deneyin.
Bunu indirin ve python setup.py yükleme ile her zamanki gibi yükleyin
Ayrıca aşağıdaki modülleri yüklemeniz gerekir: easy_install ile xhtml2pdf, html5lib, pypdf.
Burada kullanım örneği:
İlk önce bu fonksiyonu tanımlayın:
import cStringIO as StringIO
from xhtml2pdf import pisa
from django.template.loader import get_template
from django.template import Context
from django.http import HttpResponse
from cgi import escape
def render_to_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type='application/pdf')
return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))
O zaman bu gibi kullanabilirsiniz:
def myview(request):
#Retrieve data or whatever you need
return render_to_pdf(
'mytemplate.html',
{
'pagesize':'A4',
'mylist': results,
}
)
Şablon:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>My Title</title>
<style type="text/css">
@page {
size: {{ pagesize }};
margin: 1cm;
@frame footer {
-pdf-frame-content: footerContent;
bottom: 0cm;
margin-left: 9cm;
margin-right: 9cm;
height: 1cm;
}
}
</style>
</head>
<body>
<div>
{% for item in mylist %}
RENDER MY CONTENT
{% endfor %}
</div>
<div id="footerContent">
{%block page_foot%}
Page <pdf:pagenumber>
{%endblock%}
</div>
</body>
</html>
Umarım yardımcı olur.
Bunu Paylaş:
Nasıl bir form giriş alanları için ist...
Nasıl html/şerit django metin giriş iç...
Ne kimliği için geçerli değerler HTML ...
İçin karakter HTML görüntülemek için y...
Yol embed HTML PDF için tavsiye?...