ryotankの備考録日記

趣味の電子工作についての備考録などなど

基板作りチェックリストその42

pdfに変数を書き込むその1が
完成したので投稿する

一部抜粋して載せる

"""
基板作りチェックリストの機能動作確認

ファイル名:PDFに変数を書き込むその1
内容:フォームで入力された項目を変数に格納し
それをPDFのヘッダー部分に描画する
作成年月日:2022-6-11

動作確認日:2022-6-22
"""

from PySimpleGUI import TITLE_LOCATION_TOP, InputText
import PySimpleGUI as sg

#pdf関連ライブラリ
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait #A4縦型を生成する為のライブラリ
from reportlab.lib.units import cm #描画単位をcmに設定

#特定のフォントを指定する為に
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont

#中略

 elif sub_event =='-header_PDF_INPUT-':  #PDFに書き込むボタンが押されたら
                #pdfに書き込みする作業
                ##1.A4サイズ縦型のCanvasを準備
                filename = sub_value['-BOARD_NAME-'] + 'チェックリスト.pdf'
                pdf = canvas.Canvas(filename, pagesize=portrait(A4))
                pdf.saveState() #セーブ

                ##2.フォント,文字サイズを設定
                pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
                pdf.setFont('HeiseiKakuGo-W5', 16)

                ##3.固定の文字列を描画する(左から原点から, 描画したい文字列の順)
                pdf.drawString(2.2*cm, 26*cm, 
                '基板名:           リスト作成年月日:          ') #ヘッダー部分固定の文字列

                ##4.変数部分の文字列を描画する(左から原点から, 描画したい文字列の順)
                pdf.drawString(4.4*cm, 26*cm, 
                sub_value['-BOARD_NAME-']) #ヘッダー部分可変の文字列

                ##5.pdfを保存する
                pdf.restoreState()
                pdf.save() 

出来たのがこれ

pdfに変数を書き込むその1_成功例_固定の文字列のズレが気になる


次は変数を書き込むその2を作る
具体的には、フォームAのリスト作成日をヘッダー部分に描画する