Я создаю отчеты на основе графиков и использую для этого библиотеку Pygal.
Я могу получить графики на html-странице, но когда я конвертирую их в PDF-файл с помощью wkhtml2pdf, я не могу получить ни одного графика.
Я выполняю рендеринг и помещаю отрисованные диаграммы в список, а затем отображаю их в цикле в моем HTML-шаблоне
def get_report_pdf(self, report, from_date=None, to_date=None):
svgs = report.get_all_charts(from_date, to_date)
html_string = loader.render_to_string('reporting/report-
template.html', {
'charts': svgs
})
html = HTML(string=html_string)
pdfkit.from_string(html_string, '/tmp/report-
{}.pdf'.format(report.id), options={'dpi': 300})
fs = FileSystemStorage('/tmp')
with fs.open('report-{}.pdf'.format(report.id)) as pdf:
response = HttpResponse(pdf, content_type='application/pdf')
response['Content-Disposition'] = 'attachment;
filename="report-{}.pdf"'.format(report.id)
pdf.close()
return response
Мой HTML-шаблон выглядит следующим образом
<html>
<body>
{% for chart in charts %}
<div class="py">
{{chart|safe}}
</div>
{% endfor %}
<body>
</html>
Метод get_all_chart () возвращает список визуализированных объектов диаграммы
В настоящее время я получаю пустой PDF-файл. Я хочу, чтобы на нем отображались графики SVG.