Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » django+reportlab+кирилица=квадратики (reportlab+кирилица=русский язык) [RSS Feed]

#1 Ноя. 24, 2008 13:15:47

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

django+reportlab+кирилица=квадратики (reportlab+кирилица=русский язык)

Всем привет
Нужно генерить 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()
А такой код генерит квадратики вместо символов кирилицы в django:
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
Подскажите, что делаю не правильно?
предполагаю , что ‘arial.ttf’ - установлен в системе. Оба скрипта в UTF8
P.S. предварительно почитал
http://www.python.su/forum/viewtopic.php?id=1625
http://www.python.su/forum/viewtopic.php?id=1655



Офлайн

#2 Ноя. 24, 2008 13:27:54

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

django+reportlab+кирилица=квадратики (reportlab+кирилица=русский язык)

qman
предполагаю , что ‘arial.ttf’ - установлен в системе. Оба скрипта в UTF8
во втором пропиши путь к arial.ttf
PS слышал что у django есть проблема с шаблонами - к ним нужно прописывать полные пути - возможно со шривтамим также
в turbogears я прописал так
MyFontObject = ttfonts.TTFont('Arial', './project_name/static/fonts/arial.ttf')
pdfmetrics.registerFont(MyFontObject)
canvas.setFont("Arial",9)
с pisa проблема решается таким же образом



Офлайн

  • Начало
  • » Django
  • » django+reportlab+кирилица=квадратики (reportlab+кирилица=русский язык)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version