символы юникода python FPDF u"\u2611" или u'\U0001F5F9'

У меня есть txt файл, содержащий отмеченный галочкой список, так что

Done List
☑ grocery
☑ electronics

Список выше создан с использованием Python следующим образом:

chkbx = u"\u2611"   #u'\U0001F5F9'
for ...
    with open('List.txt','a',encoding='utf-8') as f:
           f.write(f"{chkbx} {activity}\n")

Я хотел бы преобразовать txt-файл в PDF с помощью FPDFбиблиотека для Python. Я использую следующую команду для сохранения

pdf.output('list.pdf').encode('utf-8')

и получите следующую ошибку:

UnicodeEncodeError: 'latin-1' codec can't encode character '\u2611' in position 516: ordinal not in range(256)

Согласно https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html он должен работать (?) Что мне здесь не хватает?

1 ответ

Возможно ли, что вы можете установить кодировку в шрифте pdf перед тем, как писать?https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html

      pdf.add_page()
pdf.add_font('DejaVu', '',FPDF_FONTPATH+'/DejaVuSansCondensed.ttf', uni=True)
pdf.set_font('DejaVu', '', 12)

FPDF_FONTPATH ​​- путь к локальным шрифтам вашего компьютера.

Я загрузил набор шрифтов Unicode, рекомендованных в документации, а затем поместил их в желаемый каталог «fonts», включая подкаталог unifont, который, как сказано в документации, он будет искать.

Другие вопросы по тегам