pythonのPDFライブラリ「ReportLab」を使ったpdfの生成の仕方
用紙サイズの指定は、reportlab.lib.pagesizesで定義されている
用紙サイズをCanvas作成に指定する。
デフォルトだとA4縦になっている
改ページにしたい場合は
showPageで、それまでにCanvasに対して行った操作を確定し、
ページを作成する。
saveを実行する事でPDFファイルの実体を作成可能になる
簡単な改ページのサンプルは以下
import os, sys rom reportlab.pdfgen import canvas from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from reportlab.lib.pagesizes import A4, portrait fontname= "IPA Gothic" #フォントファイルを指定し、フォントを登録する pdfmetrics.registerFont(TTFont(fontname, './reportlab.zip/reportlab/fonts/ipag.ttf')) c = canvas.Canvas("hello.pdf") #1ページ目開始 c.setFont(fontname, 10) c.drawString(100, 700, u"1ページ") #1ページ目を確定 c.showPage() #2ページ目開始 c.setFont(fontname, 10) c.drawString(100, 700, u"2ページ") #2ページ目を確定 c.showPage() #pdfファイル生成 c.save() print "ok."
2ページ目を開始する時に
#2ページ目開始 c.setFont(fontname, 10)
としてフォントを再指定しているが、これで実行されてないと
そのページだけ文字化けを起こす
showPageを実行した後は、フォントを再指定する必要がある事が判明
次回は、日本語を含むpdfファイルを生成する