WeasyPrint始终从Zurb Ink生成单页PDF

A T*_*A T 3 css pdf multipage weasyprint 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; } }')
                                ])
Run Code Online (Sandbox Code Playgroud)

如何获得多页PDF?

use*_*535 17

<body>
<!-- this is the container div -->
  <div>
    Content
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

如果您的html具有上述结构,那么weasyprint将尝试在一个页面中容纳您的所有"容器"内容.

我现在想到的第一个解决方案:将你的html分成两个独立的div-s.每个div不应超过页面大小.

更新 尝试在文档中包含分页符时添加此项.

<p style="page-break-before: always" ></p>
Run Code Online (Sandbox Code Playgroud)

  • `&lt;p style="page-break-before: always" &gt;&lt;/p&gt;` 对我有用 (4认同)