Python 添加用于ReportLab的字体

Python 添加用于ReportLab的字体,python,fonts,reportlab,Python,Fonts,Reportlab,我正在尝试向python ReportLab添加字体,以便将其用于函数。该函数使用canvas.canvas在PDF中绘制一组文本,并不复杂,但我需要为布局问题添加一个固定宽度的字体 当我尝试使用我能找到的少量信息注册字体时,这似乎奏效了。但当我试图从画布对象调用.addFont('fontname')时,我不断得到 “PDFDocument实例没有属性'addFont'” 这个功能只是没有实现吗?如何访问除.getAvailableFonts中列出的10种左右默认字体之外的其他字体?谢谢 我试

我正在尝试向python ReportLab添加字体,以便将其用于函数。该函数使用canvas.canvas在PDF中绘制一组文本,并不复杂,但我需要为布局问题添加一个固定宽度的字体

当我尝试使用我能找到的少量信息注册字体时,这似乎奏效了。但当我试图从画布对象调用.addFont('fontname')时,我不断得到

“PDFDocument实例没有属性'addFont'”

这个功能只是没有实现吗?如何访问除.getAvailableFonts中列出的10种左右默认字体之外的其他字体?谢谢

我试图实现的一些示例代码:

from reportlab.pdfgen import canvas
c = canvas.Canvas('label.pdf')
c.addFont('TestFont') #This throws the error listed above, regardless of what argument I use (whether it refers to a font or not).
c.drawString(1,1,'test data here')
c.showPage()
c.save()
为了注册字体,我试着

from reportlab.lib.fonts import addMapping
from reportlab.pdfbase import pdfmetrics

pdfmetrics.registerFont(TTFont('TestFont', 'ghettomarquee.ttf'))
addMapping('TestFont', 0, 0, 'TestFont')
“ghettomarquee.ttf”只是我随意使用的字体

c.setFont('TestFont')
c.drawString(1,1,'test data here')
setFont
设置要使用的字体名称,以及
drawString

如果您在文档中使用字体,ReportLab将自动嵌入该字体,您不必在以名称全局注册字体后手动添加该字体。

您是指第一行中的
c.setFont('TestFont')