我正在写一个程序,应该是把一个段落转换成PDF。上面提到的很多段落都有表情符号,我不知道该如何让它们在PDF上显示出来。
每当段落中有表情符号时,我都会收到以下错误
File "C:\Python38\lib\site-packages\fpdf\fpdf.py", line 1449, in _putTTfontwidths
if (font['cw'][cid] == 0):
IndexError: list index out of range现在,根据我的理解,这基本上是说在字体中这个未编码的位置没有找到表情符号。但我仔细查看了字体,它确实包含表情符号。
获取字体‘’cw‘的长度显示,当有问题的表情符号位于位置128522时,它会上升到65536,这几乎是距离的两倍。
现在如果我从这里编辑fpdf代码
if (font['cw'][cid] == 0):
continue到这个
try:
if (font['cw'][cid] == 0):
continue
except:
continue它打印2个方框,而不是表情符号,但如果我复制粘贴到web浏览器中,它们可以正确显示。
我假设这是一个编码问题。但是我并没有真正的插手编码,所以我不确定如何继续。
发布于 2020-05-07 19:46:46
似乎是一个已知的错误:https://github.com/reingart/pyfpdf/issues/131
看起来Fpdf已经有一段时间没有更新了。显然有一个叫做fpdf2的分支:https://pypi.org/project/fpdf2/
如果这也失败了,您可以看看ReportLab或WeasyPrint库哪一个更适合您。
https://stackoverflow.com/questions/61656858
复制相似问题