Как создать pdf файл с помощью шаблона Django с правильным CSS?
Я новичок в Django и в stack overflow тоже. Я хочу создать Django шаблон как pdf файл со всеми CSS стилями .Я использовал следующий код для создания pdf файла он правильно отображает содержимое файла, но не CSS стили .
Вот код, который я использовал :
from io import BytesIO
from xhtml2pdf import pisa
from django.template.loader import get_template
from django.http import HttpResponse
from django.shortcuts import render
def home(request):
pdf = render_to_pdf("abc.html")
return HttpResponse(pdf, content_type='application/pdf')
def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html = template.render(context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), content_type='application/pdf')
else
return None
Мы можем использовать стили в html-шаблоне двумя способами:
- Используйте
<style>...</style>
в тегеhead
в html-шаблоне. - Используйте
.css
файл из статических активов вашего приложения django. А затем добавьте ссылку в тегhead
html-шаблона, например:<link rel="stylesheet" href="{% static 'css/abc.css' %}" type="text/css" />
. Но в этом случае вы должны настроить управление статическими файлами.
Несколько полезных ссылок с примерами: тег style, статический css
Но следует отметить, что не все стили будут применены в выходном pdf-файле. Я рекомендую использовать наиболее простую разметку и стили.