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 を取得するにはどうすればよいですか?

4

1 に答える 1

39

更新された回答:

ドキュメントに改ページを入れたいときはいつでも、これを追加してみてください。

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

古い答え:

<body>
<!-- this is the container div -->
  <div>
    Content
  </div>
</body>

HTML が上記の構造を持っている場合、weasyprint はすべての「コンテナ」コンテンツを 1 ページに収めようとします。

私が今考えている最初の解決策は、html を 2 つの別々の div-s に分割することです。各 div は、ページ サイズを超えないようにする必要があります。

于 2014-06-21T14:21:50.150 に答える