django-lightpdf depends on pdfkit and wkthmltopdf (v0.12.2.1 recommended).
sudo apt-get update
sudo apt-get install -y xorg xfonts-75dpi
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-wheezy-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-amd64.deb
pip install django-lightpdf
We need to hook django-lightpdf into our project.
-
Put
lightpdfinto yourINSTALLED_APPSin settings module::INSTALLED_APPS = ( ... 'lightpdf', ) -
To control logging behaviour, add a
LIGHTPDF_LOGGING_CONFIGdictionary to your settings file followinglogging.config.dictConfigschema. -
Put a
lightpdfformatter into your LOGGING['formatters'] or the default value will be used.DEFAULT_LOGGING_FORMATTER = { 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' } -
Put a
lightpdfhandler into your LOGGING['handlers'] or the default value will be used.DEFAULT_LOGGING_HANDLER = { 'level': 'INFO', 'class': 'logging.StreamHandler', 'formatter': 'lightpdf' } -
Put a
lightpdfhandler into your LOGGING['loggers'] or the default value will be used.DEFAULT_LOGGER = { 'handlers': ['lightpdf'], 'level': 'INFO', } -
Add a
LIGHTPDF_PDFKIT_OPTIONSdictionary that will be used as kwargs forpdfkit.from_string()or the default values will be used.PDFKIT_OPTIONS = { 'page-size': 'Letter', 'margin-top': '1.2in', 'margin-right': '0.75in', 'margin-bottom': '1.2in', 'margin-left': '0.75in', 'encoding': "UTF-8", 'no-outline': None, 'quiet': '', }
```
from django.views.generic import TemplateView
from lightpdf.mixins import PdfGeneratorMixin
class PdfView(PdfGeneratorMixin, TemplateView):
template_name = 'blah.html'
pdf_name = 'superblah'
def get(self, request, *args, **kwargs):
return self.render_to_pdf_response()
```