基板作りチェックリストその23
日本語を含むpdfファイルを生成する
動作確認その1
A4縦のヘッダー部分に基板名とリスト作成年月日を描画する
ちなみにA4サイズは、縦が29.7cm 横が21.0cmとし
PDFファイル名は、基板作りチェックヘッダー部分描画テスト1.pdf
とする
文字の書き込みなどをする前に
最初に対象のPDFを生成する必要がある
from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4, portrait file_name = '基板作りチェックヘッダー部分描画テスト1.pdf' # ファイル名を設定 pdf = canvas.Canvas(file_name, pagesize=portrait(A4)) # PDFを生成、サイズはA4 pdf.saveState() # セーブ
上記のようにPDFサイズを指定したい場合は、setPageSizeメソッドを使う
次にPDFのファイル情報を設定する
これは、PDFのプロパティから確認出来る情報
pdf.setAuthor('python_checktest') # 作成者情報 pdf.setTitle('ヘッダー部分描画テスト1') #タイトル情報 pdf.setSubject('TEST1') #件名情報
文字を書き込む
次に生成したPDFに文字を書き込む方法は
rom reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.cidfonts import UnicodeCIDFont from reportlab.lib.units import cm ### フォント、サイズを設定 ### pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5')) pdf.setFont('HeiseiKakuGo-W5', 12) ### 文字を描画 ### pdf.drawString(1*cm, 26*cm, 'ヘッダー部分描画テスト1') pdf.setFont('HeiseiKakuGo-W5', 16) # フォントサイズの変更 width, height = A4 # A4用紙のサイズ pdf.drawCentredString(width / 2, height - 2*cm, 'テスト1')
ここでは文字の描画にdrawStringメソッドを使用しています。
drawString(左からの位置、下からの位置、文字列)
reportlabには日本語フォントとして、
「HeiseiMin-W3」と「 HeiseiKakuGo-W5」が用意されています。
線を描画する
線を描画する場合、まずは線の太さをsetLineWidthメソッドで指定する
setLineWidth(線の太さ)
次に線を描画するのにlineメソッドを使用します。
lineメソッドでは線のスタート位置(縦、横)と終了位置(縦、横)を
指定する必要があるので、4つの引数を指定します。
line(線のスタート位置縦、横、線の終了位置縦、横)
### 線の描画 ### pdf.setLineWidth(1) pdf.line(10*cm, 20*cm, 10*cm, 10*cm)
図形を描画する
図形を描画する場合、最初に色をsetFillColorRGBメソッドで指定します。
図形の描画が終了したら色を元に戻すことを忘れないように
### 図形の描画 ### pdf.setFillColorRGB(54, 54, 0) pdf.rect(1*cm, 1*cm, 4*cm, 4*cm, stroke=1, fill=1) #長方形を描画する pdf.setFillColorRGB(0, 0, 0)
長方形のほかにも色々な図形を描画するためのメソッドがある
次回は、実際にヘッダー部分を描画するテストコードを作成する