(Django1.5, Python2.7)
Django で動作確認用サンプルアプリを作成
プロジェクト作成している前提で
./manage.py startapp reports
reports/urls.py
from django.conf.urls import patterns, url urlpatterns = patterns( 'reports.views', url(r'^report/$', 'some_view', name='report'), )
reports/views.py
とりあえずDjangoドキュメントに書いてあるコードそのまま
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- from reportlab.pdfgen import canvas from django.http import HttpResponse def some_view(request): # 適切な PDF 用応答ヘッダを持った HttpResponse オブジェクトを # 作成します。 response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename=somefilename.pdf' # レスポンスオブジェクトを出力「ファイル」にして、 PDF オブジェクト # を作成します。 p = canvas.Canvas(response) # PDF に描画します。 PDF 生成のキモの部分です。 # ReportLab の詳しい機能は ReportLab ドキュメントを参照してください。 p.drawString(100, 100, "Hello world.") # PDF オブジェクトをきちんと閉じて終わり。 p.showPage() p.save() return response
リンクメモ
- Django で PDF を出力する — Django 1.4 documentation
- 街角のリブロガー: Django + PythonでPDF作成
- ダブログ: ReportLab(pythonライブラリ)
- PythonのPDFライブラリ「ReportLab」の使い方(画像の埋め込み) - Symfoware
- PythonのPDFライブラリ「ReportLab」の使い方(表描画、線・塗りつぶしの色、線の太さ、破線の指定) - Symfoware
- PythonのPDFライブラリ「ReportLab」の使い方(直線、矩形、円、楕円、丸囲みの矩形の描画) - Symfoware
- PythonのPDFライブラリ「ReportLab」の使い方(用紙サイズ、向き、文字出力、改ページ) - Symfoware
- How to create a PDF document with differing page sizes in reportlab, python - Stack Overflow
- pdf generation - Python Reportlab PDF - Centering Text on page - Stack Overflow
- python - ReportLab: Text with large font size is crammed within paragraph - Stack Overflow
- A Simple Step-by-Step Reportlab Tutorial « The Mouse Vs. The Python