基板作りチェックリストその21
既存PDFに日本語のテキストを書き込む
フローチャートに従ってpdfを生成したいところだが、
初期段階として基板作りチェックリスト読み込み用の
PDFを読み込ませて様子見をしてみる
無事に読み込みが出来ればフローチャート通りに
コード組んでいく
読み込ませるpdf(計3ページ分)
#既存のPDFを読み込ませる動作確認 from PyPDF2 import PdfFireWriter, PdfFileReader from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4, portrait from reportlab.lib.units import inch, mm, cm from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.cidfonts import UnicodeCIDFont #ファイルの指定 template_file = './チェックリストPDF読み込み.pdf' #既存のテンプレートPDF output_file = './output.pdf' #完成したPDFの保存先 tmp_file = './tmp.pdf' #一時ファイル #A4縦のCanvasを作成-------(1) w, h = portrait(A4) cv = canvas.Canvas(tmp_file, pagesize=(w, h)) #フォントを登録しCanvasに設定する----(2) font_size = 16 ttf_file = './ipaexg.ttf' pdfmetrics.registerFont(UnicodeCIDFont('HeiseiKakuGo-W5', ttf_file) cv.setFont('HeiseiKakuGo-W5', font_size) #文字列を描画する--------(3) cv.setFillColorRGB(0, 0, 0.4) cv.drawString(70*mm, h-20*mm, "既存PDF読み込みテスト") #一時ファイルに保存-------(4) cv.showPage() cv.save() #テンプレートとなるPDFを読み込む----(5) template_pdf = PdfFileReader(template_file) template_page = template_pdf.getPege(0) #一時ファイルを読んで合成する-----(6) tmp_pdf =PdfFileReader(tmp_file) template_page.mergePage(tmp_pdf.getPage(0)) #書き込み先PDFを用意する--------(7) output = PdfFileWriter() output.addPage(template_page) with open(output_file, "wb") as fp: output.write(fp)
出来たのがこれ
読み込ませたpdfにテキスト文字を描画したもの
なぜか文字が縦書きになった。。。??
これを横書きに直さないと厳しい
次回はテキストを横書きに直すコードを完成させたい