gpt4 book ai didi

python - fpdf "UnicodeEncodeError: ' latin- 1' codec can' t 在位置 88 : ordinal not in range(256)"中编码字符 '\u2013'

转载 作者:行者123 更新时间:2023-12-05 06:01:36 24 4
gpt4 key购买 nike

我正在尝试用 Python 将文本文件转换为 pdf,但出现错误。为什么会发生这种情况,我该如何解决?

这是我的代码:

import fpdf
from fpdf import FPDF

pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=15)
f = open("textfile.txt", "r")
for i in f:
pdf.cell(200, 10, txt=i, ln = 1, align = 'C')
pdf.output("Output.pdf")

输出:错误

    p = self.pages[n].encode("latin1") if PY3K else self.pages[n] 
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2013' in position 88: ordinal not in range(256)

最佳答案

fpdf 中的所有标准字体都使用latin-1 编码。如果您想编写不在 latin-1 集中的字符,则需要使用 set_font 指定外部字体。

引用: https://pyfpdf.readthedocs.io/en/latest/reference/set_font/index.html

否则,您必须将字符串转换为 latin-1(使用 encode 方法)并指定是否忽略或替换坏字符(即那些latin-1 中不存在)。

关于python - fpdf "UnicodeEncodeError: ' latin- 1' codec can' t 在位置 88 : ordinal not in range(256)"中编码字符 '\u2013',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67130517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com