WeasyPrint всегда генерирует одностраничные PDF-файлы из Zurb Ink
Генерация PDF из электронной почты (шаблон Zurb Ink); но мне всегда дается одна страница PDF.
Исполняемый тест-кейс:
from weasyprint import HTML, CSS
from urllib2 import urlopen
if __name__ == '__main__':
html = urlopen('http://zurb.com/ink/downloads/templates/basic.html').read()
html = html.replace('<p class=\"lead\">', '{0}<p class=\"lead\">'.format(
'<p class=\"lead\">{0}</p>'.format("foobar " * 50) * 50))
HTML(string=html).write_pdf('foo.pdf', stylesheets=[
CSS(string='@page { size: A4; margin: 2cm };'
'* { float: none !important; };'
'@media print { nav { display: none; } }')
])
Как получить многостраничный PDF?
1 ответ
<body>
<!-- this is the container div -->
<div>
Content
</div>
</body>
Если ваш html имеет вышеуказанную структуру, то weasyprint попытается уместить все содержимое вашего контейнера на одной странице.
Первое решение, которое я имею в виду прямо сейчас: разбить ваш HTML на 2 отдельных div-ов. Каждый div не должен превышать размер страницы.
Обновление Попробуйте добавить это всякий раз, когда вы хотите, чтобы в вашем документе был разрыв страницы.
<p style="page-break-before: always" ></p>