每当我尝试生成包含立陶宛字母(ąčęėįšųūž)的PDF时,我都会收到"UnicodeEncodeError:‘拉丁语-1’编解码器无法在位置中编码字符'\u0307‘...“。我尝试添加一个TTF字体,定位我的本地Arial.ttf文件,当它在任何其他应用程序中使用时都可以正常工作,但是如果与PyFPDF一起使用,它只是在使用字母的地方导出一个空白文本。有什么方法可以导出这些信件吗?
#!/usr/local/bin/python3
import fpdf
pdf = fpdf.FPDF()
pdf.add_page()
pdf.set_font("Arial", "B", 18)
pdf.set_xy(25, 25)
pdf.cell(w=160, h=10, align="C", txt="VAT Invoice")
pdf.set_font("Arial", "", 14)
pdf.cell(w=160, h=10, align="C", txt="SĄSKAITA ė")
pdf.output('./invoice.pdf', 'F')发布于 2019-04-02 08:32:13
这看起来应该可以解决您的问题:https://pyfpdf.readthedocs.io/en/latest/Unicode/index.html
下载支持Unicode字符的字体,并按照上述站点上的说明进行操作。下面的代码示例假设您下载了一种DejaVuSans字体(我是从here下载的)。
import fpdf
pdf = fpdf.FPDF()
pdf.add_page()
pdf.add_font("DejaVu", "", "DejaVuSans.ttf", uni=True)
pdf.set_font("DejaVu", "", 14)
pdf.cell(w=160, h=10, align="C", txt="SĄSKAITA")
pdf.output('./invoice.pdf', 'F')https://stackoverflow.com/questions/55465115
复制相似问题