ryotankの備考録日記

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

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

今回はヘッダー部分に基板名、少し間隔をあけて作成年月日
フッター部分に右端に基板の分類名
ガーバーデータの注意事項、担当者がチェックした日付を
記入出来る記入日欄をつけるのが目標1とし
PyPDF2というライブラリを利用して
"既存PDFに日本語のテキストを書き込むのを目標2とする

まずはヘッダー部分に基板名、少し間隔をあけて作成年月を入れる

#ヘッダー部分を矩形で描画する
#塗りつぶしの色の設定方法は 描画前にCanvasに対して設定する
#描画した時にfill=Trueと設定していないと塗りつぶしが実行されないので注意する
#教訓:ヘッダー部分を色付けして文字を描画すると
#文字自体が塗りつぶされるので色付けを無くした

#動作確認日:2021-12-28

from reportlab.pdfgen import canvas

from reportlab.lib.pagesizes import A4, portrait
from reportlab.lib.units import mm

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

#色を指定する為
from reportlab.lib.colors import lightgreen

# 縦型A4のCanvasを準備
cv = canvas.Canvas('Header and Text.pdf', pagesize=portrait(A4), bottomup=False)

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

### 文字を描画 (左からの位置、下からの位置、入れたい文字列)
cv.drawString(20*mm, 35*mm, '基板名:__________________   作成年月日:   年   月   日')

#矩形で描画(始点x, 始点y, 幅、高さ)
cv.rect(10*mm, 20*mm, 190*mm, 20*mm)

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

上記のコードから出来たのがこちらのキャプチャ画像
(はてなブログだとpdfが掲載できない
仕様の為)

f:id:ryotank:20211228153413p:plain
ヘッダー部分を矩形で描画し、文字を描画したPDFを生成

今度はフッター部分に右端に基板の分類名
ガーバーデータの注意事項、担当者がチェックした日付を
記入出来る記入日欄をつける

#フッター部分を矩形で描画する
#教訓:ヘッダー部分を色付けして文字を描画すると
#文字自体が塗りつぶされるので色付けを無くした

#フッターの位置がズレてはいるが、無事文字を描画出来た、あとは位置の微調整のみ

#動作確認日:2021-12-2???

from reportlab.pdfgen import canvas

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

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

#色を指定する為
from reportlab.lib.colors import lightgreen

# 縦型A4のCanvasを準備
cv = canvas.Canvas('Footer and Text.pdf', pagesize=portrait(A4), bottomup=True)

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

### 文字を描画 (左からの位置、下からの位置、入れたい文字列)
cv.drawString(20*mm, 175*mm, '分類名:___________基板  担当者確認年月日:   年   月   日')
cv.drawString(20*mm, 145*mm, 'ガーバーデータを外注時には作成日より日を空けて確認する事!!!')


#矩形で描画(始点x, 始点y, 幅、高さ)
cv.rect(10*mm, 155*mm, 190*mm, 20*mm)

# 保存
cv.showPage()
cv.save()
f:id:ryotank:20211228153503p:plain
フッター部分を描画し、特定の文字を描画したPDFを生成

コメントにも書いたが、フッター位置がまだズレているので
微調整さえ出来れば、きちんとしたフッターに文字を描画出来る

おいおい修正をかけていく

次回は目標2であるPyPDF2というライブラリを利用して
"既存PDFに日本語のテキストを書き込むを作成するので
その為のフローチャートを掲載して実際に動作確認をする