ふと「pythonでpdfを出力できたりしないのかな」と思って調べたところ、どんぴしゃなライブラリがあったので今回はその「reportlab」ライブラリの紹介になります。
では、始めます。
1:reportlabのインストール方法
インストール方法は簡単で、pipが入っていれば以下のコマンドでインストールできます。
$ pip install reportlab
ちゃんとインストールできているかについは、PowerShellなどでpythonを起動させ、以下のようにバージョン表示ができればOKです。
$ python >>> import reportlab >>> reportlab.__version__ '4.0.4'
2:reportlabでpdfを出力する
ライブラリを使って簡単なpdfを出力してみます。以下のコードを実行してみてください。
・pdf_test.py
#-*- coding:utf-8 -*- from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4, portrait PDF_FILE_PATH = "./test.pdf" # メイン関数 def main(): print("--- start ---") create_pdf(PDF_FILE_PATH) print("--- end ---") # pdfを作成する関数 def create_pdf(file_path): # 保存先ファイル(A4) pdf_canvas = canvas.Canvas(file_path, pagesize=portrait(A4)) # 各種情報を設定 pdf_canvas.setAuthor("author") # 作者 pdf_canvas.setTitle("title") # 表題 pdf_canvas.setSubject("subject") # 件名 # Hello World!の文字を書き込む pdf_canvas.drawString(10, 800, "Hello World!") pdf_canvas.save() # pdfを保存 if __name__ == '__main__': main()
実行すると「test.pdf」というファイルが作成されます。開くと中身は以下のようにHello World!の文字のみになっています。
またpdfのプロパティを見てみると、ちゃんと設定した作者名などが設定されているのがわかります。
ちなみに「drawString」関数で文字を表示させているところは用紙の左下を原点としているため、注意が必要になります。
以上がreportlabライブラリを使ってpdfを出力させる方法になります。
今回はとりあえずpdfを出力させてみただけですが、他にも画像を埋め込んだり、表を作成する機能もあるようなので、その辺りについてはまた別の記事にしようかと思います。
このライブラリを使いこなせればpdf出力をかなり自由にできるようになりそうなので、使っていきたいです。
・参考資料