Здравствуйте подскажите как сделать в pisa размер страницы нестандартного размера (допустим 15.6 на 13.5). Когда я работаю со стандатными размерами (A4, A5) все нормально. Когда пытюсь задать произвольный размер страницы, developer сервер django (1.3.1) падает. Вот мой код.views.py
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('utf-8')), result)
if not pdf.err:
return http.HttpResponse(result.getvalue(), mimetype='application/pdf')
return http.HttpResponse('We had some errors%s' % cgi.escape(html))
def pisa_print(request):
if request.method == 'POST':
form = page(request.POST)
if form.is_valid():
print request.META['QUERY_STRING']
results = re.findall(r'option=([0-9]*)', request.META['QUERY_STRING'], re.I)
response = None
if results:
for item in results:
rekvizit = []
rekvizit.append({'h2': spr_app.objects.get(pk=int(item)).name})
return render_to_pdf('pdf/pdf_template.html', {'pagesize':'A4', 'rekvizit':rekvizit})
base_pdf.html
{% block style %}
@font-face {
font-family:Arial;
src: url(/usr/share/fonts/truetype/msttcorefonts/Arial.ttf);
}
@page {
size: {{pagesize}};
margin: 2cm;
@frame footer {
-pdf-frame-content: footerContent;
bottom: 1cm;
margin-left: 1cm;
margin-right: 1cm;
height: 1cm;
}
}
div {
font-family: Arial; width: 100%;
-pdf-page-break;
}
table {
-pdf-keep-in-frame-mode: none;
}
.pagebreak {page-break-after: always}
{%endblock%}
{%block content%}
{%endblock%}
{%block page_foot%}
{%endblock%}
pdf_template.html
{% extends "pdf/base_pdf.html" %}
{% block content %}
{% for company in rekvizit %}
{{ company.h2 }}
{% endfor %}
{% endblock %}
{%block page_foot%}
Страница {{block.super}}
{%endblock%}
Пытался менять размеры во views делая так
def pisa_print(request):
if request.method == 'POST':
form = page(request.POST)
if form.is_valid():
print request.META['QUERY_STRING']
results = re.findall(r'option=([0-9])', request.META['QUERY_STRING'], re.I)
response = None
if results:
for item in results:
rekvizit = []
rekvizit.append({'h2': spr_app.objects.get(pk=int(item)).name})
pagesize=(17.2cm, 18.4*cm)
return render_to_pdf('pdf/pdf_template.html', {'pagesize':pagesize, 'rekvizit':rekvizit})