次の python プログラミングから pdf を生成しようとしていますが、生成された出力にヘブライ文字が正しく表示されません
# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
def hello(c):
c.drawString(100,100, "מה שלומך")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()
次の python プログラミングから pdf を生成しようとしていますが、生成された出力にヘブライ文字が正しく表示されません
# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
def hello(c):
c.drawString(100,100, "מה שלומך")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()
このコード (以下を参照) は機能します。あなたがする必要があるのはArialHB.ttf
、(またはヘブライ文字をサポートする他のフォント)をsite-packages/reportlab/fonts
...
目的の出力は、pdf ページの下部にあります。
# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
pdfmetrics.registerFont(TTFont('Hebrew', 'ArialHB.ttf'))
def hello(c):
c.setFont("Hebrew", 14)
c.drawString(10,10, u"מה שלומך".encode('utf-8'))
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()
適切なデコード呼び出しを使用すると、"מה שלומך".decode("utf-8")
機能します。
# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
def hello(c):
c.drawString(100,100, "מה שלומך".decode("utf-8"))
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()