Я пытаюсь подготовить отчет, используя Jinja2 и Weasyprint. При этом я использую следующий html-шаблон и вводю в html-таблицу данные в виде таблицы.
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic 400italic,500,500italic,700italic,700,900,900italic" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="assets/css/main.css">
<style>
</style>
</head>
<body>
<div align = "center" class="container">
{{table}}
</div>
</body>
</html>
Я отображаю шаблон следующим образом:
import pandas
from jinja2 import Environment, FileSystemLoader
from weasyprint import HTML, CSS
import seaborn as sns
fmri = sns.load_dataset('fmri')
env = Environment(loader=FileSystemLoader(''))
template = env.get_template("/html_templates/example.html")
variables = {"table": fmri.to_html(classes='table table-bordered',index=False, justify='left')}
html_out = template.render(variables)
HTML(string=html_out).write_pdf("report.pdf", stylesheets=[
CSS(filename="main.css")])
Итоговый отчет в формате PDF составляет 43 страницы с заголовками таблицы и одним элементом таблицы, как показано на рисунке. пример страницы .
Сохранение html_out в виде html-файла и открытие в браузере отображает таблицу без проблем. Есть идеи, что здесь не так?
Редактировать: Кроме того, CSS не применяется должным образом в отчете. Результирующая таблица, когда jinja2 выводит html, показана на следующем изображении:
Таблица в браузере
Edit2: печать отчета без css работает нормально, похоже, что файл css вызывает проблемы с печатью.