使用 fpdf 模块时,问题在于使用特殊字符,如 'ć,č,š,đ,ž...
我尝试了这样的简单代码:
from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=15)
f = open("data.txt", "r")
for x in f:
pdf.cell(200, 10, txt=x, ln=1, align='C')
pdf.output("mytestdata.pdf")
引发的错误是:UnicodeEncodeError: 'latin-1' codec can't encode character '\u2021' in position 77: ordinal not in range(256)
当我用它with open
来读取文本文件decode
时latin-1
,输出是错误的。
with open("data.txt", 'rb') as fh:
txt = fh.read().decode('latin-1')
字母与特殊符号混合在一起。但它是唯一UnicodeEncodeError
不被提出的方式。
内容data.txt
:
test1: Čč
test2: Ćć
test3: Žž
test4: Đđ
test5: Šš