使用 python 通过 FPDF 导入字体时出现问题

Problem importing fonts with FPDF using python

我一直在尝试使用 pdf.add_font() 命令导入 FPDF 包中默认包含的特殊字体 Python。下面的代码会产生未定义字体的错误,就好像我不只是使用 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

Proof of fonts in the correct directory

谢谢!

这一行:

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

创建一个全新的 FPDF 实例并删除您精心添加字体的实例。您需要将字体添加到您实际使用的实例中。