символы юникода 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, который, как сказано в документации, он будет искать.