【问题标题】:wkhtmltopdf: footer-spacing is too big when footer is changedwkhtmltopdf:页脚更改时页脚间距太大
【发布时间】:2016-10-20 08:36:54
【问题描述】:

我想在我的 toc 中隐藏我的页脚的一部分,所以我在 subst() 函数中执行以下操作:

if(vars['section'] == ""){document.body.className="hide-footer-text";}

这或多或少有效:我想隐藏的页脚部分成功消失。但是我的底部间距改变了,见附件。如何为页脚设置固定的底部间距? (我已经尝试过-B 选项,但它不起作用)

带有一些文字和正确底部间距的原始页脚:

页脚我想在 toc 中使用(没有上面的文本),但底部间距变大了:

附加信息:我可以将此文本绘制为白色,而不是设置 display:none,但这对我来说是没有选择的(因为我真的需要这些页面上的额外空间)

编辑: 只是为了确保:这是我在我的目录页上所期望的: 再说一遍:我想用内容填充额外的空间(行上方),因此不能选择将文本绘制为白色。

编辑2: 抱歉没有提及,但我认为很清楚:我通过选项添加页脚footer footer.html

编辑3: 谢谢大家的回答,但我刚刚发现,如果我使用来自 footer.html 的页脚,那么它将总是在页面底部占用相同的空间。因此,即使我将页脚放在页面的最底部 - 我的内容也不会扩展到该点。

【问题讨论】:

  • 你能提供一些代码吗?
  • @Munchkin 在 811 代表处,您应该知道点赞不花钱。 3个人试图帮助你解决这个问题。我删除了我的答案,但以后尽量记住其他人的时间和精力。

标签: html css wkhtmltopdf


【解决方案1】:

您的 HTML 必须是表格 (<table>)。 创建任意数量的行,然后在最后一行添加 css vertical-align: bottom。 不要忘记将table 的高度设置为与 PDF 纸张大小相同(无边距)。

示例:如果您的 PDF 是 A4 大小,请按照下一个示例进行操作:

<table class="container">
    <tr>
        <td>Header</td>
    </tr>
    <tr>
        <td>content</td>
    </tr>
    <tr>
        <td class="bottom">Footer at bottom</td>
    </tr>
</table>

CSS

.container {
    width: 210mm;
    height: 297mm; /* if you set -B and -T to 0 */
}

.bottom {
    vertical-align: bottom;
}

例子

.container {
    width: 210mm;
    height: 297mm; /* if you set -B and -T to 0 */
    border:1px solid silver;
    box-shadow: 1px 1px 5px #ddd;
    background: #fff;
}

.bottom {
    vertical-align: bottom;
}

body {
    background: #ccc
}
<table class="container">
    <tr>
        <td valign="top">Paper A4</td>
    </tr>
    <tr>
        <td>content</td>
    </tr>
    <tr>
        <td class="bottom">Footer at bottom</td>
    </tr>
</table>

如果你想要从底部等 10 毫米的边距,请将 -B 设置为 20 并将 .containerheight 设置为 287mm

【讨论】:

  • 感谢您的回答,但这不起作用,因为我通过选项footer footer.html添加了页脚
  • @Munchkin 为什么你不想要带有表格的页脚?您可以阅读手册 wkhtmltopdf.org/usage/wkhtmltopdf.txt 并使用 --footer-spacing 但我认为这种方式更难...我不知道您当前的 HTML 和 CSS 所以回答并不容易:-)
  • 在您的回答中,您正在为页眉、内容和页脚显示 一个 HTML。但我有一个单独的footer.html,它只包含我的页脚内容。 --footer-spacing 定义页脚和内容之间的间距,而不是页脚和页面底部之间的间距。
【解决方案2】:

“粘性页脚”的最佳描述发布在“Sticky Footer: Five Ways”。这并不完全是您要解决的问题,但可能会有所帮助。

另一种可能有用的方法是为您的 TOC 页面定义不同的页脚。你可以通过稍微修改wkhtmltopdf – Add Header or Footer to only First or Last Page的代码来做到这一点

一般来说,将页脚附加到页面底部的最简单和最简单的方法是使用position: absolute; bottom:0; 当然,您有责任防止正文溢出页脚。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多