Copy fonts to /project/directory/site_media/font.
#-*- coding: utf-8 -*- import cStringIO as StringIO import ho.pisa as pisa from django.contrib.auth.decorators import login_required from django.http import HttpResponse from django.shortcuts import get_object_or_404 from django.template import Context from django.template.loader import get_template from django.utils.translation import ugettext_lazy as _ from arap.report.models import Review from arap.report.models import Type from arap.settings import MEDIA_ROOT @login_required def print_report(request, id): """ Generuje raport z przeglądu. """ template = get_template('report/print.html') review = get_object_or_404(Review, id=id) context = Context({'pagesize':'A4', 'review':review, 'MEDIA_ROOT':MEDIA_ROOT}) html = template.render(context) result = StringIO.StringIO() pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('UTF-8')), result) if not pdf.err: response = HttpResponse( result.getvalue() ) response['Content-Type'] = 'application/pdf' response['Content-Disposition'] = 'attachment; filename="%s-%s-%s.pdf";' \ %(review.server,review.report_type, review.created) return response return HttpResponse(u"Coś nie bangla.", mimetype='text/html')
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> @font-face { font-family: "arial","helvetica","symbol"; src: url({{ MEDIA_ROOT}}/font/arial.ttf); } @font-face { font-family: "arial black"; src: url({{ MEDIA_ROOT}}/font/arialbd.ttf); } @font-face { font-family: "verdana"; src: url({{ MEDIA_ROOT}}/font/verdana.ttf); } @font-face { font-family: "Times New Roman" ,"wingdings"; src: url({{ MEDIA_ROOT}}/font/Times_New_Roman.ttf); } @font-face { font-family: "Comic Sans Ms"; src: url({{ MEDIA_ROOT}}/font/Comic_Sans_MS.ttf); } @page { margin: 1cm; margin-bottom: 2.5cm; @frame footer { -pdf-frame-content: footerContent; bottom: 2cm; margin-left: 1cm; margin-right: 1cm; height: 1cm; } } html, body, table, caption, tbody, tfoot, thead, tr, th, td { font-family: "Times New Roman"; } </style> <title>Raport {{ review.report_type }} {{ review.server }} {{ review.created }}</title> </head> <body> {{ review.report|safe }} <div id="footerContent"> {%block pager %} <pdf:pagenumber> {%endblock%} </div> </body> </html>