基板作りチェックリストその43
PDFに書き込むその2
一部抜粋して載せる
"""基板作りチェックリストの機能動作確認 ファイル名:PDFに変数を書き込むその2 内容:フォームで入力された項目(フォームAのリスト作成日のみ)を変数に格納し それをPDFのヘッダー部分に描画する 作成年月日:2022-6-22 動作確認日:2022-6-23 その3は、フォームAの入力項目を格納しヘッダー部分を描画する 基板名がカラの場合は、sg.popupで入ってないよと通知する 本来のリスト表にした時に今の設定(特に原点からの位置)2行表示がどのように影響するかは まだ見ていない暫定で2行表示に成功した keep_on_True=[bool] Trueの場合ウィンドウは画面上のほかの全てのウィンドウの上に 作成出来る 2022-6-20""" 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, '基板名: ') #ヘッダー部分固定の文字列 pdf.drawString(2.2*cm, 24*cm, 'リスト作成日: ') ##4.変数部分の文字列を描画する(左から原点から, 描画したい文字列の順) pdf.drawString(6.4*cm, 24*cm, sub_value['-LIST_DATE-']) #ヘッダー部分可変の文字列 ##5.pdfを保存する pdf.restoreState() pdf.save()
上記のコードを実行すると
これが出来る
次回は、その3を作成する
具体的には、フォームAの項目を変数に格納し、
もし基板名が何も入力されていなければ通知で警告を出す