WeasyPrint总是从Zurb Ink生成单页PDF文件

13

从电子邮件生成 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个回答

44

更新的答案:

在您的文档中需要分页时,请尝试添加此代码。

<p style="page-break-before: always" ></p>

旧答案:

<body>
<!-- this is the container div -->
  <div>
    Content
  </div>
</body>
如果你的HTML具有上述结构,则Weasyprint将尝试将所有“容器”内容适合于一个页面。
我现在心中首先想到的解决方案是:将您的HTML拆分为2个单独的div。每个div的长度不应超过页面大小。

5
<p style="page-break-before: always"></p> 对我有用。 - Dan Safee
<p style="page-break-before: always" ></p> - 这对我也起作用了,非常感谢。 - Sougata Pal
你救了我的一天!谢谢! - Haifeng Zhang
这对我没有用,我的高度标签取决于我在render_template(x, yyy)中提供的参数。 - Budi Mulyo
你救了我的命!感谢更新! - Ron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接