Django: Проблема рендеринга и загрузки HTML в формате PDF, стили и ресурсы применяются некорректно

Я пытаюсь сгенерировать PDF с данными, ранее введенными в Django, основа PDF - HTML, при создании HTML он отображается в порядке и как я хочу при просмотре его с помощью расширения ""Live Preview"" в Visual Studio Code, но при преобразовании его в PDF в моем проекте, он генерируется плохо и грязно (извините, если я плохо описал себя, это первый раз, когда я использую эту платформу D:)Идея в том, что это выглядит примерно так: HTML, но когда вы загружаете PDF, он выглядит так: Bad PDF

В качестве ссылки для создания функциональности PDF я использовал это видео: https://www.youtube.com/watch?v=J3MuH6xaDjI, это HTML, который я использую для создания PDF:

и вот виды, если это может быть полезно:

def generate_pdf(request, *args, **kwargs):
    # Get the value of 'pk' from the keyword arguments passed to the function
    pk = kwargs.get('pk')
    # Try to get an Ordenes object with the provided 'pk'
    order = get_object_or_404(Ordenes, pk=pk)
    # Get the order number from the order object
    order_number = order.order_number

    # Define the path of the HTML template that will be used to generate the PDF
    template_path = 'pdf_quote.html'
    # Define the context that will be passed to the template. This context contains the order object
    context = {'order': order}
    # Create an HTTP response object with the content type set to 'application/pdf'
    response = HttpResponse(content_type='application/pdf')
    # Set the 'Content-Disposition' header of the response to indicate that the response should be treated as a file to download
    response['Content-Disposition'] = f'attachment; filename="quote_{order_number}.pdf"'
    # Find the template and render it
    template = get_template(template_path)
    html = template.render(context)

    # Create a PDF
    pisa_status = pisa.CreatePDF(
       html, dest=response)
    # If there is an error, show a view with the error
    if pisa_status.err:
       return HttpResponse('We had some errors <pre>' + html + '</pre>')
    # If everything goes well, return the response with the PDF
    return response

Спасибо за внимание.

Вернуться на верх