PDF-файлы с помощью ReportLab в Django. Пенджабский юникод (например, ਵਿਰੋਧ ਦੇ ਸਮੇਂ ਫਾਸ਼ੀਵਾਦ) отображается некорректно. Нужно решение для шрифта

def generate_punjabi_pdf(request):
    font_path = os.path.join(settings.BASE_DIR, 'static/myapp/css/fonts/Noto_Sans_Gurmukhi/static', 'NotoSansGurmukhi-Regular.ttf')

    pdfmetrics.registerFont(TTFont('NotoSansGurmukhi', font_path))

    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'inline; filename="punjabi_text.pdf"'
    c = canvas.Canvas(response, pagesize=A4)

    c.setFont("NotoSansGurmukhi", 16)

    c.drawString(100, 750, "ਵਿਰੋਧ ਦੇ ਸਮੇਂ ਫਾਸ਼ੀਵਾਦ")

    c.showPage()
    c.save()
    return response

Я пробовал использовать различные библиотеки, например fpdf2, но сихари в пенджабском тексте располагаются неправильно, показывая сдвиг на следующий символ.

Вернуться на верх