Форум сайта python.su
Всем привет
Нужно генерить pdf документы включая символы кирилицы в django используюя reportlab.
Такой код генерит документы включая символы кирилицы без django.
# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase import ttfonts
MyFontObject = ttfonts.TTFont('Arial', 'arial.ttf')
pdfmetrics.registerFont(MyFontObject)
MyCanvas = canvas.Canvas("hello.pdf")
MyCanvas.setFont("Arial", 40)
MyCanvas.drawString(200, 400, "Привет, Мир!")
MyCanvas.save()
def hello_pdf(request):
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase import ttfonts
from django.http import HttpResponse
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=somefilename.pdf'
p = canvas.Canvas(response)
MyFontObject = ttfonts.TTFont('Arial', 'arial.ttf')
pdfmetrics.registerFont(MyFontObject)
p.drawString(100, 100, "Hello world.")
p.drawString(100, 400, "привет мир.")
p.showPage()
p.save()
return response
Офлайн
qmanво втором пропиши путь к arial.ttf
предполагаю , что ‘arial.ttf’ - установлен в системе. Оба скрипта в UTF8
MyFontObject = ttfonts.TTFont('Arial', './project_name/static/fonts/arial.ttf')
pdfmetrics.registerFont(MyFontObject)
canvas.setFont("Arial",9)
Офлайн