def print_invoice(request, invoice_id): invoice_objects = Invoice.objects.prefetch_related('invoiceitem_set') invoice = get_object_or_404(invoice_objects, pk=invoice_id) file = 'invoice_' + str(invoice.company) + invoice.period.display filename = 'filename={}.pdf'.format( file.replace(".", "").replace(',', '').replace(' ', '_')) response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = filename doc = SimpleDocTemplate(response, rightMargin=.6 * cm, leftMargin=2 * cm, topMargin=2.75 * cm, bottomMargin=3 * cm, pagesize=letter) elements = invoice.print_invoice_data() doc.firstname = request.user.first_name doc.lastname = request.user.last_name doc.total_amount = invoice.total_amount doc.build(elements, onFirstPage=footer) return response