Weasyprint python html到pdf不会打印所有内容

时间:2019-03-14 16:24:56

标签: css pdf-generation jinja2 weasyprint

我正在尝试使用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页,其中包含表标题和表中的一项,如图所示。example of a page。 将html_out保存为html文件并在浏览器中打开显示该表没有问题。有什么主意吗?

编辑:此外,css在报告中的应用不正确。下图显示了jinja2输出html时的结果表: Table in browser

Edit2:在没有CSS的情况下打印报表效果很好,似乎是CSS文件导致了打印问题。

0 个答案:

没有答案