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
,
Приветствия Доми