reportlab を使用して pdf ファイルを生成しています。PDFに文字列を描画すると、問題が発生します。TTFont で文字列の高さを取得するにはどうすればよいですか?
コード:
# Register fonts.
pdfmetrics.registerFont(ttfonts.TTFont('fz1', 'fz1.ttf'))
pdfmetrics.registerFont(ttfonts.TTFont('fz3', 'fz3.ttf'))
pdfmetrics.registerFont(ttfonts.TTFont('fz4', 'fz4.ttf'))
pdfmetrics.registerFont(ttfonts.TTFont('fz5', 'fz5.ttf'))
pdfmetrics.registerFont(ttfonts.TTFont('w5', 'w5.ttc'))
def draw_text(canvas, fontName, fontSize, x, y, text, cmyk_color=None):
t = canvas.beginText(x * mm, y * mm)
t.setFont(fontName, fontSize)
if cmyk_color is None:
cmyk_color = (0, 0, 0, COLOR_DIV_RATIO)
canvas.setFillColorCMYK(cmyk_color[0] / COLOR_DIV_RATIO,
cmyk_color[1] / COLOR_DIV_RATIO,
cmyk_color[2] / COLOR_DIV_RATIO,
cmyk_color[3] / COLOR_DIV_RATIO)
t.textLine(text)
canvas.drawText(t)
c.drawImage('f1.jpg', 0, 0, CANVAS_WIDTH * mm, CANVAS_HEIGHT * mm)
draw_text(c, 'fz1', 15, mm2pixel(5), mm2pixel(45), u'This is a string')
次の方法で文字列の幅を取得できます。
text_width = stringWidth(text, 'fz1', 15)
しかし、どうすれば文字列の高さを取得できますか?