每当我尝试生成带有任何立陶宛字母(±čęėįšųūž)的PDF时,我都会收到“ UnicodeEncodeError:'latin-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')
答案 0 :(得分:0)
这看起来应该可以解决您的问题: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')