如何在PyFPDF中导出立陶宛字母(ąčęėįšųūž)?

问题描述 投票:0回答:1

每当我试图用任何立陶宛字母(ąčęėįšųūž)生成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')
python pdf pdf-generation fpdf
1个回答
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')
© www.soinside.com 2019 - 2024. All rights reserved.