Разрыв страницы не работает на заголовках ( python, weasyprint )
Я хочу создать pdf из содержимого html. Я использую beautifulsoup для получения html-строки, а затем создаю из нее PDF с помощью weasyprint и python.
У меня возникла проблема, когда я хочу показать заголовки (в частности, h3) на новой странице (хотя это не работает ни для одного из тегов h). Сейчас у меня есть такой код в html
{% block report %}
<style>
h3 {
page-break-before:always;
}
</style>
<div class="container" style="padding-top:45px">
<div class="row">
<div class="col-12">
<h1 id="h1-title" class="mb-5">{{report.title|safe}}</h1>
<div class="control-head">
<h3 id="1.-first-section">1. First Section</h3>
<hr>
<p>{{obj.some_content_one|safe}}</p>
</div>
<div class="control-head">
<h3 id="2.-second-section">2. Second Section</h3>
<hr>
<p>{{obj.some_content_two|safe}}</p>
</div>
<div class="control-head">
<h3 id="3.-third-section">3. Third Section</h3>
<hr>
<p>{{obj.some_content_three|safe}}</p>
</div>
<div class="control-head">
<h3 id="4.-fourth-section">4. Fourth Section</h3>
<hr>
{{obj.some_content_four|safe}}
</div>
</div>
</div>
</div>
{% endblock report %}
Когда я использую page-break-after
в тегах h3, weasyprint отрисовывает содержимое только до первого h3, включая h3.string... Если я использую page-break-before: always;
, то weasyprint отображает первый "control-head" и {{obj.some_content_one|safe}}
и прекращает отображение второго в конце страницы, где находится второй h3 (в основном он отображает второй control-head h3.string и содержимое с {{obj.some_content_two|safe}}
, пока не заполнит страницу, а затем прекращает отображение pdf дальше)...
Я попробовал использовать page-break-after/before для элемента таблицы, и это сработало (это содержимое содержит несколько таблиц). Он отлично работал с обоими вариантами after/before. Но что бы я ни делал, это не работает с заголовками.
Я попытался удалить все css, которые смог найти, которые влияют на h3 или .control-head, но это просто не работает. Не уверен, что это важно, но я также использую Bootstrap5
Проблема была устранена путем удаления
<div class="container" style="padding-top:45px">
<div class="row">
<div class="col-12">
....
</div>
</div>
</div>
Это никак не повлияло на макет PDF и позволило мне использовать разрыв страницы для заголовков