Wkhtmltopdf页脚无法渲染位置

时间:2017-06-23 09:35:29

标签: html css pdf wkhtmltopdf

在我的html中,页脚不会在pdf中呈现...

Volley library

当未指定位置时它起作用...

使用带有python的pdfkit生成pdf:

    <!DOCTYPE html>
<html>

<head>
  <style>
  footer{
background:#ccc;
position:absolute;
bottom:0;
width:100%;
padding-top:50px;
}
</style>
</head>

<body>
  <footer>
    <p> test </p>
    <p> test </p>
    <p> test </p>
    <p> test </p>
    <p> test </p>
    <p> test </p>
    <p> test </p>
    <p> test </p>
    <p> test </p>
  </footer>
</body>

</html>

以下是我在content_url中使用的内容

pdfkit.from_file(content_url, 'out.pdf', {        
        '--footer-html': footer_url,
        '--footer-spacing':  '10'
    })

任何帮助?

2 个答案:

答案 0 :(得分:1)

您需要在页脚html上指定正文的高度,以便使用定位显示它(就像在其他网页中一样)。

使用下面的代码,您可以获得与页面底边对齐的多变高度页脚。 注意:当您使用 - margin-bottom 选项调用wkhtmltopdf时,必须指定底部保证金。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
            line-height: 1;
            font-size: 12pt;
            height: 20mm; /* set it to your bottom margin */
        }

        .footer {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
        }
    </style>
</head>
<body>
<div class="footer">test <b>html</b> footer<br/><i style="color:blue;">two lines</i></div>
</body>
</html>

在wkhtmltopdf 0.12.4上测试(带有修补的qt)。

答案 1 :(得分:0)

许多人将页边距设置为0,以在全文中显示PDF页面。

这是创建页脚和页眉问题的时候。

您需要在命令中设置选项 * --margin-top 10 --margin-bottom 10 * 或在wkhtmltopd包装器的配置文件中进行设置。

这是snappyBundle(wkhtmltopdf包装器库)的配置

knp_snappy:
    pdf:
        enabled:    true
        binary:     '%env(WKHTMLTOPDF_PATH)%'
        options:
          enable-javascript: true
          javascript-delay: 200
          no-stop-slow-scripts: true
          encoding: 'UTF-8'
          margin-top: 10
          margin-right: 0
          margin-bottom: 10
          margin-left: 0