7

感谢 WeasyPrint,我用 Django 生成了一个我以 pdf 格式呈现的表格。

该表可能真的很长(行数),因此可能以几页 pdf 结果结尾。我必须在页面的每一端都包含一个静态页脚,所以我应用了 CSS固定规则。

我的问题是这个页脚被很长的桌子重叠了。我如何要求 WeasyPrint(我认为是通过 css)在每个页脚之前打破表格并继续在下一页上呈现表格?

<table>
    <tr></tr> <!-- a lot of rows, potentially spreading on several A4 pages -->
</table>

<footer style="position: fixed"> <!-- footer contents will be repeated and overlapped on each page until </table> is not reached -->

</footer>

我尝试使用 css 规则作为应用于表格标签的 padding-bottom 但没有成功

谢谢

4

1 回答 1

14

我找到了解决方案。

首先,您必须定义页边距:

@page {
    size: A4;
    margin: 15mm 20mm;
}

我的顶部和底部边距为 15 毫米。

当您现在在页面/正文中放置一个固定页脚时,它将位于这些边距“内部”,非fixed元素将与其重叠。因此,您要做的是将固定页脚“移出”这些边距:

footer
{
    position        : fixed;
    right           : 0;
    bottom          : 0;
    margin-bottom   : -10mm;
    height          : 10mm;
    text-align      : right;
    font-size       : 10px;
}

fixedbottom属性会将您的页脚放在底部的每一页上,但在定义的边距内(重叠的地方)。height指定页脚高度,然后通过负margin-bottom属性将其移动到边距“外部”。只要确保margin-bottom>= height

干杯多米

于 2016-07-14T11:50:54.787 回答