Нечитаемый текст после печати в PDF

#python #unicode #fonts #fpdf

#python #Юникод #шрифты #fpdf

Вопрос:

Мне нужно распечатать текст в PDF, но текст, который я печатаю, не является ascii. Основываясь на выходных данных моего кода, он генерирует что-то вроде этого

[][][][][][][] ( Окно 😉 )

Я пытаюсь выяснить, как напечатать текст, отличный от ascii, в PDF. Спасибо!

 #!/usr/bin/env python
# -*- coding: utf-8 -*- 

def sample():
    pdf = fpdf.FPDF()
    pdf.add_page()
    text = '안녕하세요'
    pdf.add_font('DejaVu', '', 'fpdf\unifont\DejaVuSansCondensed.ttf', uni=True)
    pdf.set_font('DejaVu', '', 9)

    pdf.text(x=data_column, y=start_y   (3 * charheight),
                 txt=str(u": {0}".format(text)))

  

Ответ №1:

Вы используете шрифт, который не поддерживает символы хангыля. В документах fpdf используется шрифт eunjin для обозначения хангыля:

 # Add a Alee Unicode font (uses UTF-8)
# General purpose Hangul truetype fonts that contain Korean syllable 
# and Latin9 (iso8859-15) characters.
pdf.add_font('eunjin', '', 'Eunjin.ttf', uni=True)
pdf.set_font('eunjin', '', 14)
pdf.write(8, u'Korean: 안녕하세요')