Pada kesempatan kali ini saya akan menampilkan cara untuk export dokumen pdf dengan Django. Untuk menghasilkan sebuah dokumen pdf, dibutuhkan library tambahan yaitu xhtml2pdf, install dengan printah berikut pada command prompt
pip install xhtml2pdf
selanjutnya buat file bernama render.py
[python]
from io import BytesIO
from django.http import HttpResponse
from django.template.loader import get_template
from xhtml2pdf import pisa
def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html = template.render(context_dict)
result = BytesIO()
#Bagian ini akan meng-generate pdf
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type=’application/pdf’)
return None
[/python]
langkah selanjutnya buka views.py input code dibawah ini, fungsi dari code ini untuk melakukan
generating pdf dokumen
[python]
</pre>
from django.template.loader import get_template
from .render import render_to_pdf
def get_pdf(request):
#mengambil template
data ={}
data[‘coba’] = "Ini adalah hasil cetak"
pdf = render_to_pdf(‘coba.html’,data)
#render template
return HttpResponse(pdf, content_type=’application/pdf’)[/python]
untuk pemanggilan fungsi input code berikut pada urls.py
[python]
url(r’^get_pdf’, views.get_pdf, name=’get_pdf’),[/python]
kemudian buat template dengan nama coba.html, fungsi get_pdf pada views.py akan melakukan generating pdf pada halaman html tersebut.
[html]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django HTMLtoPDF Tutorial</title>
</head>
<body>
<h1>HTML To PDF</h1>
Berikut ini adalah halaman yang akan di generate pdf oleh django
</body>
</html>
[/html]
selanjutnya lakukan pemanggilan fungsi tersebut pada url
[python]localhost:8000/get_pdf[/python]
maka akan muncul document pdf yang kita inginkan
sekian tutorial dari saya.