我正在编写一个应该将段落转换为 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
现在根据我的理解,这基本上表示在字体的这个未编码位置找不到表情符号。但我已经详细查看了字体,它确实包含表情符号。
获取 font['cw'] 的长度表明,当相关表情符号位于几乎两倍远的位置 128522 时,它会上升到 65536。
现在,如果我从此编辑 fpdf 代码
if (font['cw'][cid] == 0):
continue
对此
try:
if (font['cw'][cid] == 0):
continue
except:
continue
它打印 2 个框而不是表情符号,但如果我将这些框复制粘贴到 Web 浏览器中,它们会正确显示。
我假设这是一个编码问题。但我并没有真正干预编码,所以我不确定如何进行。