前提
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 コメント