Я пишу программу, которая должна превратить абзац в 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'] показывает, что она увеличивается до 65536, когда рассматриваемый эмодзи находится в позиции 128522, которая почти вдвое больше.
Теперь, если я отредактирую код fpdf с этого
if (font['cw'][cid] == 0):
continue
на этот
try:
if (font['cw'][cid] == 0):
continue
except:
continue
, он печатает 2 поля вместо смайликов, но если Я копирую и вставляю поля в веб-браузер, они отображаются правильно.
Я предполагаю, что это проблема с кодировкой. Но я особо не вмешивался в кодирование, поэтому не знаю, как действовать дальше.