はじめに
こんにちは、AIエンジニアの志賀です。
このたびはPDFの生成ができるライブラリReportLabの使い方についての技術ブログをご覧いただきありがとうございます。
PythonでReportLabというライブラリを使用すると、プログラムからPDFドキュメントを生成できます。
この記事では、ReportLabの基本的な使い方を解説します。
ReportLabを使ってPDFを生成する
環境のセットアップ
まず、PythonとReportLabをセットアップします。
Pythonをインストール済みであることを確認し、ReportLabを以下のコマンドでインストールします。
pip install reportlab
基本的なPDFの生成
基本的なPDFの生成は以下のステップで行います。
まず、Pythonスクリプトを作成し、必要なモジュールをインポートします。
from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas # PDFドキュメントの生成 c = canvas.Canvas("basic_pdf.pdf", pagesize=letter)
テキストを追加するには、以下のように drawString
メソッドを使用します。
c.drawString(100, 750, "ReportLab")
このコードは、座標 (100, 750) にテキストを追加します。
次に、新しいページを追加するには以下のコードを使用します。
c.showPage()
これにより、新しいページが生成されます。テキストの他にもさまざまな要素を追加できます。
フォントとスタイルの設定
フォントとスタイルを設定することで、テキストをカスタマイズできます。
フォントの設定は以下のように行います。
from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas from reportlab.lib import fonts c = canvas.Canvas("styled_pdf.pdf", pagesize=letter) c.setFont("Helvetica-Bold", 12) c.drawString(100, 750, "Customized Text")
このコードは "Helvetica-Bold" フォントを使用してテキストを表示します。
テーブルの作成
テーブルはデータを整然と表示するのに役立ちます。
以下はテーブルを作成する基本的なステップです。
from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Table, TableStyle from reportlab.lib import colors doc = SimpleDocTemplate("table_pdf.pdf", pagesize=letter) data = [["col1", "col2", "col3"], [1, 2, 3], [4, 5, 6]] table = Table(data) table.setStyle(TableStyle([('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('BOTTOMPADDING', (0, 0), (-1, 0), 12), ('BACKGROUND', (0, 1), (-1, -1), colors.beige), ('GRID', (0, 0), (-1, -1), 1, colors.black)])) elements = [table] doc.build(elements)
このコードは、データを含むテーブルを生成します。
図形の追加
ReportLabを使用して、PDFに図形を追加できます。
以下は簡単な例です。
from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas c = canvas.Canvas("shapes_pdf.pdf", pagesize=letter) # 線の描画 c.line(100, 100, 200, 200) # 円の描画 c.circle(300, 150, 50) # 四角形の描画 c.rect(400, 100, 100, 50) c.save()
このコードは、線、円、四角形を描画し、PDFに保存します。
画像の挿入
画像の挿入も簡単です。
まず、PILライブラリを使用して画像を読み込みます。
from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas from reportlab.lib.utils import ImageReader from PIL import Image c = canvas.Canvas("image_pdf.pdf", pagesize=letter) # 画像読み込み image = Image.open("example.jpg") # ReportLab ImageReaderに変換 image_reader = ImageReader(image) # 画像を描画 c.drawImage(image_reader, 100, 100, width=200, height=150) c.save()
このコードでは、"example.jpg" という画像をPDFに挿入しています。
PDFファイルの保存と出力
生成したPDFを保存するには、 save
メソッドを使用します。
既にいくつかの例で使用していますが、以下に再掲します。
c.save()
終わりに
以上が、PDFの生成ができるライブラリReportLabの基本的な使い方の解説でした。
いかがでしたでしょうか。
是非、Python開発でReportLabを使って、PDFの作成をしてみてください。