使用PyFPDF在PDF中添加表情符号。

问题描述 投票:1回答:1

我正在编写一个程序,它应该把一个段落变成一个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

现在根据我的理解,这基本上是说在字体的这个未编码位置没有找到表情符号。但是我详细看了一下字体,确实包含了emojis。

得到font['cw']的长度后发现,当相关表情符号位于128522位置时,它的长度达到了65536,几乎是两倍。

现在如果我编辑这个pdf代码

if (font['cw'][cid] == 0):
        continue

对此

try:
    if (font['cw'][cid] == 0):
        continue
except:
    continue

它打印了2个方框,而不是表情符号,但如果我将方框复制粘贴到网络浏览器中,它们就会正确显示。

我假设这是一个编码问题。但我还没有真正地干预过编码,所以我不知道如何继续。

python encoding fpdf emoji pyfpdf
1个回答
0
投票

似乎是一个已知的错误。https:/github.comreingartpyfpdfissues131

看起来Fpdf有一段时间没有更新了。显然有一个叫fpdf2的叉子。https:/pypi.orgprojectfpdf2

如果也失败了,你可以看看ReportLab或WeasyPrint库是否更适合你。

© www.soinside.com 2019 - 2024. All rights reserved.