44

reportlab を使用して PDF を作成しています。次の方法を使用してフォントを設定しようとすると、次のようになりますKeyError

pdf = Canvas('test.pdf')
pdf.setFont('Tahoma', 16)

しかし、'Courier'代わりに使用し'Tahoma'ても問題はありません。タホマの使い方は?

4

3 に答える 3

83

Perhabs Tahoma は TrueType フォントであり、最初に登録する必要があります。ReportLab のユーザー ガイドによると、これを行う必要があります。

from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

pdfmetrics.registerFont(TTFont('Vera', 'Vera.ttf'))
pdfmetrics.registerFont(TTFont('VeraBd', 'VeraBd.ttf'))
pdfmetrics.registerFont(TTFont('VeraIt', 'VeraIt.ttf'))
pdfmetrics.registerFont(TTFont('VeraBI', 'VeraBI.ttf'))

canvas.setFont('Vera', 32)
canvas.drawString(10, 150, "Some text encoded in UTF-8")
canvas.drawString(10, 100, "In the Vera TT Font!")

canvas オブジェクトには、getAvailableFonts現在登録されている (したがって使用可能な) フォントをすべて返すメソッドがあります。

于 2011-02-04T15:59:03.823 に答える