繁体   English   中英

python FPDF unicode 符号 u"\☑" 或 u'\\U0001F5F9'

[英]python FPDF unicode symbols u"\u2611" or 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")

我想使用 Python 的FPDF库将 txt 文件转换为 PDF。 我用下面的命令来保存

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它应该可以工作(?)我在这里错过了什么?

有没有可能在写之前先在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”子目录,文档说它将查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM