19

我的页眉经常剪辑内容,因此它下面的内容不完全可见,看起来好像页面在页眉结束之前在页眉下方继续,因此,并没有显示所有内容。

演示问题的图像,内容显示在标题下方

有没有我可以使用的 CSS 规则?还是 wkhtmltopdf 的 cmd 参数?还是有什么其他方式?

4

6 回答 6

25

我了解到这实际上是一个已知问题,并且不太可能在一段时间内更改。解决方法是style="margin:0; padding:0;"在标题<body>元素中使用。另一种解决方法是尝试使用该--header-spacing n参数。另一种方法是包装所有首页元素并在那里添加边距,但这是一个非常糟糕的非动态想法。

有关更多信息,请参阅:

http://code.google.com/p/wkhtmltopdf/issues/detail?id=182(此问题的重复) http://code.google.com/p/wkhtmltopdf/issues/detail?id=175(此问题的根源) http://code.google.com/p/wkhtmltopdf/issues/detail?id=523(header-spacing 解决方法)

于 2012-07-17T06:46:25.607 回答
11

<body style='height:50px;overflow:hidden;margin:0;padding:0;'>在页眉和页脚以及--header-spacing 30 -T 45mm参数中为我工作。

于 2014-04-15T13:08:49.863 回答
5

确保您<!doctype html>在页眉/页脚页面的开头有。否则,Webkit 会以 quirksmode 呈现页面。

于 2015-02-05T11:44:49.397 回答
3

这对我有用

thead {
    display: table-header-group;
}
tfoot {
    display: table-row-group;
}
tr {
    page-break-inside: avoid;
}
于 2016-04-09T08:52:31.387 回答
1

这对我有用

--header-spacing XX -T XXmm

XX 应该是相同的值 eq: --header-spacing 20 -T 20mm

于 2017-09-14T15:17:49.670 回答
1

我找到了解决方案:我创建了一个 bash 脚本,它将标头隔离在 HTML 文件中,然后将其注入--header-html

编辑:假设您的标头在 thead 标记中

filename="x.html"

begin=`awk '/<thead>/{ print NR; exit }' $filename` 
end=`awk '/<\/thead>/{ print NR; exit }' $filename`

echo "<DOCTYPE! html>" > $filename".head.html"
cat $filename | head -$end | tail -n +$begin | sed -e "s/.*<thead>/<thead>/g" | sed -e "s/<\/thead>.*/<\/thead>/g" >> $filename".head.html"

#You can do the same for tfoot

wkhtmltopdf --header-html $filename".head.html" $filename output.pdf

它也适用于 tfoot 或在页眉和页脚位于 header 标签的情况下。您还需要在原始文档中制作一个样式标签来表示 display is none 。(您可以通过脚本添加它)

于 2020-04-20T16:40:40.373 回答