WeasyPrint: исправлен тег нижнего колонтитула, перекрывающийся длинной таблицей на каждой странице PDF

Я создаю с помощью Django таблицу, которую я отображаю в pdf благодаря WeasyPrint.

Эта таблица потенциально очень длинная (если говорить о количестве строк) и поэтому может закончиться несколькими страницами в формате 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 в качестве отступа, примененного к табличному тегу, но безуспешно

Спасибо

1 ответ

Решение

Я нашел решение для этого.

Прежде всего, вы должны определить поля страницы:

@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;
}

fixed а также bottom Свойства будут размещать нижний колонтитул на каждой странице внизу, но в пределах определенных полей (там, где они перекрываются). height задает высоту нижнего колонтитула, которая затем перемещается "за пределы" полей отрицательным margin-bottom имущество. Просто убедитесь, что margin-bottom >= height,

Приветствия Доми

Другие вопросы по тегам