0

我一直在尝试使用pdf.add_font()命令导入 Python 的 FPDF 包中默认包含的特殊字体之外的特殊字体。下面的代码产生了一个未定义字体的错误,好像我不只是使用pdf.add_font(). 您可以在下面找到我的代码示例,以及相关字体在pdf.add_font()命令中指定的目录中的证明。我也尝试在C:\Windows\Fonts目录中安装相关字体。

from fpdf import FPDF

# Makes new pdf
nbareport = FPDF('P', 'mm', 'Letter')

# Imports new fonts
nbareport.add_font('CMU Serif', '', r'C:\Users\gregd\PycharmProjects\pythonProject2\venv\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\cmu.serif-roman.ttf', uni=True)
nbareport.add_font('CMU Serif', 'B', r'C:\Users\gregd\PycharmProjects\pythonProject2\venv\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\cmunbx.ttf', uni=True)

# Create instance of FPDF class
# Letter size paper, use inches as unit of measure
nbareport = FPDF(format='letter', unit='in')

nbareport.set_font('CMU Serif', '', 10)
nbareport.cell('Hello World!')
nbareport.output('test.pdf', 'F')

相关错误信息:

Traceback (most recent call last):
  File "C:\Users\gregd\PycharmProjects\pythonProject2\NBA Data\FPDF tester.py", line 14, in <module>
    nbareport.set_font('CMU Serif', '', 10)
  File "C:\Users\gregd\PycharmProjects\pythonProject2\venv\lib\site-packages\fpdf\fpdf.py", line 603, in set_font
    self.error('Undefined font: '+family+' '+style)
  File "C:\Users\gregd\PycharmProjects\pythonProject2\venv\lib\site-packages\fpdf\fpdf.py", line 227, in error
    raise RuntimeError('FPDF error: '+msg)
RuntimeError: FPDF error: Undefined font: cmu serif

正确目录中的字体证明

谢谢!

4

1 回答 1

1

这一行:

nbreport = FPDF(format='letter', unit='in')

创建一个全新的 FPDF 实例并帮助删除您仔细添加字体的那个。您需要将字体添加到您实际使用的实例中。

于 2021-02-17T01:45:20.607 回答