如果输出的语言不同,并且没有拉丁unicode,那么如何在python中使用不同的unicode?

2024-05-18 05:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用tkinter为语言翻译应用程序编写代码,作为一个额外功能,我决定添加一个函数,让您将翻译后的文本保存为pdf文件。问题是,如果翻译的文本包含拉丁unicode以外的字符,则会出现错误

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\vinit\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "C:/Users/vinit/PycharmProjects/LanguageTranslator/Translator/Translator.py", line 66, in savepdf
    pdf.output("Language.pdf")
  File "C:\Users\vinit\PycharmProjects\LanguageTranslator\venv\lib\site-packages\fpdf\fpdf.py", line 1065, in output
    self.close()
  File "C:\Users\vinit\PycharmProjects\LanguageTranslator\venv\lib\site-packages\fpdf\fpdf.py", line 246, in close
    self._enddoc()
  File "C:\Users\vinit\PycharmProjects\LanguageTranslator\venv\lib\site-packages\fpdf\fpdf.py", line 1636, in _enddoc
    self._putpages()
  File "C:\Users\vinit\PycharmProjects\LanguageTranslator\venv\lib\site-packages\fpdf\fpdf.py", line 1170, in _putpages
    p = self.pages[n].encode("latin1") if PY3K else self.pages[n]
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 87-91: ordinal not in range(256)

如果我想把文字从英语翻译成印地语或任何其他具有不同字符的语言,我该怎么做


Tags: inpyselfvenvpdflibpackagesline
1条回答
网友
1楼 · 发布于 2024-05-18 05:52:32

应使用.add_font()设置并使用unicode字体

下面是使用arialuni.ttf的示例代码:

...
pdf.add_font("arialuni", "", "C:/Windows/fonts/arialuni.ttf", uni=True)
pdf.set_font("arialuni", size=15)
...

详情请参阅document

相关问题 更多 >