RSS

ReportLabで日本語を使う

まずはReportLabで日本語を使う方法。

# -*- encoding: utf-8 -*-
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont

c = canvas.Canvas("hello.pdf")

pdfmetrics.registerFont(UnicodeCIDFont('HeiseiMin-W3'))
c.setFont('HeiseiMin-W3', 16)
c.drawString(100,620,u"こんにちは世界 明朝体")

pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
c.setFont('HeiseiKakuGo-W5', 16)
c.drawString(100,640,u"こんにちは世界 ゴチック体")
c.showPage()
c.save()

こんな感じです。ちょっと古い資料だとUnicodeCIDFontを使わないでCIDFontを使っていたりするがドキュメントによると2.0からはUnicodeCIDFontを使うべきらしい。