Как я могу использовать 'pdfkit' в djngo?

Я хочу генерировать pdf в моем проекте django. Я использую модуль pdfkit для преобразования html страницы в pdf файл. Я использую эту функцию, но она содержит ошибки, например: OSError Exception Value:
Не найден исполняемый файл wkhtmltopdf: "b''" Если этот файл существует, проверьте, может ли этот процесс прочитать его, или вы можете передать путь к нему вручную в вызове метода, проверьте README. В противном случае установите wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf

  def customer_render_pdf_view(request, *args, **kwargs):
     pk = kwargs.get('pk')
     customer = get_object_or_404(Person, pk=pk)
     enrolment = get_object_or_404(Enrollment,pk=pk)  
     template_path = 'test.html'
     context = {'customer': customer, 'enrolment':enrolment}    
     template = get_template(template_path)
     html = template.render(context)    
     pdf = pdfkit.from_string(html, False)
     response = HttpResponse(pdf, content_type='application/pdf' )
     response['Content-Disposition'] = 'filename= "report.pdf"'
     return response

вы можете использовать следующим образом

импорт отчета лабораторной и pdf

from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse
from django.template.loader import get_template
import pdfkit
from .models import Buses
    def pdf(request, id):
       bus = Buses.objects.get(id=id)
       template = get_template('buses/pdf.html')
       html = template.render({'bus': bus})
       options = {
          'page-size': 'Letter',
          'encoding': "UTF-8",
       }
       config = 
       pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf') 
        #use your actual location here


       pdf = pdfkit.from_string(html, False, configuration=config, 
       options=options)
       response = HttpResponse(pdf, content_type='application/pdf')
       response['Content-Disposition'] = 'attachment; filename=" 
       {}_{}.pdf"'.format(bus.company, bus.name)
   return response
Вернуться на верх