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>
Другие вопросы по тегам