ryotankの備考録日記

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

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

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ファイルを生成する