3

我试图将 dejavucondensed.ttf 复制到 pyfpdf/font/ 但是当我尝试时没有运气

>>> from pyfpdf import *
>>> p = FPDF()
>>> p.add_font('dejavucondensed')
SyntaxError: Non-ASCII character '\xfd' in file pyfpdf/font/dejavucondensed.font 
on line 2, 
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
4

2 回答 2

1

对于以后一直在看这个的任何人,试试这个。我在使用 Python 3.8 的 Ubuntu Linux 中。去你的安装fpdf,对我来说是在/usr/local/lib/python3.8/dist-packages/fpdf

如果那里没有名为fonts的文件夹,请执行mkdir fonts. 从任意ttf数量的来源中获取您的字体文件并将其放在字体文件夹中。我想要 Calibri Regular 并命名我的文件calibri_regular.ttf

然后在您的解释器或脚本中:

from fpdf import FPDF
pdf = FPDF()

pdf.add_font('Calibri Regular', '', 'calibri_regular.ttf', uni=True)
pdf.set_font('Calibri Regular', '', 12)

此时您已准备好以该字体写入 PDF。

于 2021-09-30T22:11:27.597 回答
0

这可能是 Unicode/编码问题(请参阅 消息中链接的 PEP)。我这里没有安装 pypdf,但是根据add_font 的参考文档,你需要使用uni参数:

pdf.add_font('DejaVu', '', 'DejaVuSansCondensed.ttf', uni=True)
于 2012-09-28T05:47:05.450 回答