Search code examples
pythonspecial-charactersreportlab

python reportlab writing special chararacters in PDF file


my code is this

    from reportlab.lib.styles import getSampleStyleSheet
    from reportlab.platypus import BaseDocTemplate, Frame, PageTemplate, Paragraph
    from reportlab.lib.styles import ParagraphStyle
    from reportlab.lib.colors import Color
    from reportlab.pdfbase import pdfmetrics
    from reportlab.pdfbase.ttfonts import TTFont
    pdfmetrics.registerFont(TTFont('Vera', 'Vera.ttf'))
    pdfmetrics.registerFont(TTFont('VeraBd', 'VeraBd.ttf'))
    canvas.setFont(font_name_from_dict , font_size)
    bodyStyle = ParagraphStyle('Body', fontName = "Vera", fontSize= 10, textColor= Color( 255,0,0,1)

    P = Paragraph("większość zmieniła się Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ" , bodyStyle)
    P.drawOn(canvas, 0, 0)

But I am not able to write paragraph with this characters "większość zmieniła się Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ" ... I tried with the fonts which support this characters ...Still the problem is same..I am getting [][][][] empty boxes for these letter in pdf


Solution

  • By adding DejaVuSans Font to my application solved my problem Here is the snippet of code

    pdfmetrics.registerFont(TTFont('DejaVuSans','DejaVuSans.ttf'))