Задать вопрос
@IronDrovosek

Как иправить проблему с кодировкой PDF в Django?

Всем привет!

Делаю проект на Django. Есть определённая страница, которая конвертируется в PDF при помощи этого кода:

views.py:
def pdf(request):
    Sales_by_employee = Sales.objects.all().order_by('Employee_code')
    open("database/temp.html", "w").write(render_to_string("database/Sales_by_employee.html",
                                                           {'Sales_by_employee': Sales_by_employee}))
    pdf = html2pdf("database/temp.html")

    return HttpResponse(pdf, content_type='application/pdf')

pdf.py:
from io import BytesIO
from django.http import HttpResponse
from django.template.loader import get_template
from xhtml2pdf import pisa

def html2pdf(template_source, context_dict={}):
    template = get_template(template_source)
    html = template.render(context_dict)
    result = BytesIO()
    pdf = pisa.pisaDocument(BytesIO(html.encode('UTF-16')), result)
    if not pdf.err:
        return HttpResponse(result.getvalue(), content_type='application/pdf')
    else:
        return HttpResponse("Error Rendering PDF", status=400)


Шаблон .html создаётся нормально:
6444e64f8b896301928194.png

А вот конвертация в .pdf не получается вместо кириллицы получаю вот это:
6444e692d95ac692508579.png

Как это исправить? Подскажите, пожалуйста.
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Указать Pisa, что нужно использовать шрифт с поддержкой кириллицы. Это есть в документации и ответах на этом ресурсе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы