使用 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 实例并删除您精心添加字体的实例。您需要将字体添加到您实际使用的实例中。
我一直在尝试使用 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 实例并删除您精心添加字体的实例。您需要将字体添加到您实际使用的实例中。