Я пытаюсь добавить шрифт в python ReportLab, чтобы использовать его для функции. Функция использует canvas.Canvas, чтобы нарисовать кучу текста в PDF, ничего сложного, но мне нужно добавить шрифт фиксированной ширины для проблем с макетом.
Когда я попытался зарегистрировать шрифт, используя небольшую информацию, которую я мог найти, это, казалось, сработало. Но когда я попытался вызвать .addFont('fontname') из моего объекта Canvas, я продолжаю получать
"У экземпляра PDFDocument нет атрибута 'addFont'"
Является ли функция просто не реализована? Как получить доступ к шрифтам, отличным от 10 или около того, которые указаны в .getAvailableFonts? Спасибо.
Пример кода, который я пытаюсь сделать:
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' был просто случайным шрифтом, который я лежал.