関数に使用できるように、PythonReportLabにフォントを追加しようとしています。この関数はcanvas.Canvasを使用してPDFに大量のテキストを描画します。複雑なことは何もありませんが、レイアウトの問題のために固定幅フォントを追加する必要があります。
見つけた情報を少し使ってフォントを登録しようとすると、うまくいったようです。しかし、Canvasオブジェクトから.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」は私がうそをついたランダムなフォントでした。