Sameela

Surakarta

Location

085-728827-650

Contact Us

gusanhite@gmail.com

Information Technology Consultation

django pdf

Export PDF pada Django

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

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

langkah selanjutnya buka views.py input code dibawah ini, fungsi dari code ini untuk melakukan
generating pdf dokumen

</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')

untuk pemanggilan fungsi input code berikut pada urls.py


url(r'^get_pdf', views.get_pdf, name='get_pdf'),

kemudian buat template dengan nama coba.html, fungsi get_pdf pada views.py akan melakukan generating pdf pada halaman html tersebut.


<!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>

selanjutnya lakukan pemanggilan fungsi tersebut pada url

localhost:8000/get_pdf

maka akan muncul document pdf yang kita inginkan
sekian tutorial dari saya.

Comments:0

Leave a Reply

Your email address will not be published. Required fields are marked *