我曾尝试将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发布于 2021-09-30 22:11:28
对于后来一直在研究这一点的任何人来说,可以试试这个。我在Ubuntu Linux中使用Python 3.8。转到您的fpdf安装,对我来说,它是在/usr/local/lib/python3.8/dist-packages/fpdf中。
如果没有名为fonts的文件夹,请执行mkdir fonts。从任意数量的源中获取适用于您的字体的ttf文件,并将其放置在fonts文件夹中。我想要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。
发布于 2012-09-28 13:47:05
这可能是Unicode/编码问题(请参阅PEP linked in the message)。我没有在这里安装uni,但是根据pypdf,您需要使用pypdf参数:
pdf.add_font('DejaVu', '', 'DejaVuSansCondensed.ttf', uni=True)https://stackoverflow.com/questions/10028375
复制相似问题