擅长:python、mysql、java
<p>由于Weasyprint支持CSS页面媒体模块级别3,因此可以使用CSS完成简单的页眉和页脚(如您所提到的分页):</p>
<pre><code>@page {
@top-right{
content: "Page " counter(page) " of " counter(pages);
}
}
</code></pre>
<p>请确保在呈现时包含样式表:</p>
<pre><code>HTML(string=rendered_html,
base_url=settings.SITE_URL).write_pdf(stylesheets=[CSS(settings.STATIC_ROOT + '/css/pdf_render.css')])
</code></pre>
<p>但是,要呈现更多复杂的页眉/页脚可能会更多。。复杂。有些人建议在标题中包含一个div元素,该元素只用于打印(但我必须承认,我只能使用此方法使简单元素正确呈现):</p>
<pre><code>@page {
@top-left {
content: element(pageHeader);
}
}
@media print {
#divHeader{
position: running(pageHeader);
}
}
</code></pre>
<p>还有另一种使用固定位置的方法,如本文所示:<a href="https://gist.github.com/pikhovkin/5642563" rel="noreferrer">https://gist.github.com/pikhovkin/5642563</a></p>