ryotankの備考録日記

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

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

ヘッダー部分を描画するテストコード

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, portrait
from reportlab.lib.units import cm #cm単位で座標を指定

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


file_name = '基板作りチェックヘッダー部分描画テスト2.pdf'  #ファイル名を設定
pdf = canvas.Canvas(file_name, pagesize=portrait(A4))  #pdfを生成、A4サイズ縦に設定
pdf.saveState() #セーブ

#PDFのファイル情報を作成する
pdf.setAuthor('python_checktest2')  #作成者情報
pdf.setTitle('ヘッダー部分描画テスト2')  #タイトル情報
pdf.setSubject('TESTヘッダー2')  #件名情報

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

### 文字を描画 (左からの位置、下からの位置、入れたい文字列)
pdf.drawString(2.2*cm, 26*cm, '基板名:____________  リスト作成年月日:   年   月   日')


#図形の描画
pdf.rect(2*cm, 25*cm, 17*cm, 2*cm)  #長方形を描画する

#保存
pdf.showPage()
pdf.save()

長方形を描画するには、
rectメソッドを使う  rect(float x, float y, float w, float h)というコードで表現可能
xは、長方形の左上の角のx座標 yは長方形の左上の角のy座標 wは長方形の幅 hは長方形の高さ

文字を描画する
ヘッダー部分に以下のような文字を描画する

「基板名:______    リスト作成年月日:    年    月     日」

解説
portraitは縦方向 reportlab.lib.unitsはcmでも出来るしmmでも設定可能

フォントを設定するには
#特定のフォントを指定する為に
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
上記のライブラリをインポートした上で

### フォント、サイズを設定 ###
pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5'))
pdf.setFont('HeiseiKakuGo-W5', 14)
と書くと、フォントが決められる

上記のテストコードを実行すると以下のようになった

ヘッダー部分描画テスト1_2022_5_15キャプチャ

1回目はページ下部に正方形ができてしまった

ヘッダー部分描画テスト2_2022_5_15キャプチャ

2回目は上部に図形を描画出来た

ヘッダー部分描画テスト2_2022_5_16キャプチャ

3回目は希望通りに文字と図形を描画出来た

次回はフッター部分(A4下部の箇所)を作成する