Добавление шрифта для использования в ReportLab
Я пытаюсь добавить шрифт в 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 ' был просто случайным шрифтом, который у меня лежал.
1 ответов
c.setFont('TestFont')
c.drawString(1,1,'test data here')
setFont
установить имя шрифта, который вы собираетесь использовать, и drawString
.
ReportLab автоматически вставит шрифт, если вы используете его в документе, вам не нужно вручную добавлять его после того, как вы зарегистрировали шрифт глобально под именем.