PythonでPDF出力時の文字化け

前提

pythonのCanvasを使用してPDF文書を作ろうとしています。

実現したいこと

文書作成に当たって曜日を入れるのですが、printでは正しく「日」と表記されるのに
PDFで出力した文字は「譌・」となってしまいます。
これを正しく「日」と表記した状態で出力したいです。

作成したPDFのプロパティを見ると、エンコーディングが「Ansi」になっていました。

該当のソースコード

python

1from reportlab.pdfgen import canvas 2from reportlab.lib.units import mm 3from reportlab.pdfbase.pdfmetrics import registerFont 4from reportlab.pdfbase.ttfonts import TTFont 5import datetime as dt 6import locale 7 8locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')9registerFont(TTFont('HGRME','C:/Windows/Fonts/HGRME.TTC'))10 11MyFN="C:/****/Demo.pdf"12 13CrPDF=canvas.Canvas(MyFN)14CrPDF.saveState()15CrPDF.setFont('HGRME', 72)16 17w = 420 * mm 18h = 297 * mm 19 20CrPDF.setPageSize((w, h))21 22MyWeek=dt.date(2023,1,29).strftime('%a')23 24print(MyWeek)#これは正しく出力される25 26CrPDF.drawString(x=0,y=0,text= MyWeek)27 28CrPDF.save()

補足情報(FW/ツールのバージョンなど)

VisualStudioCode
python3.10.4
Adobe Acrobat Pro

コメントを投稿

0 コメント