我的标题经常剪辑内容,以使其下方的内容不完全可见,看起来好像页面在标题结束前继续在标题下面,因此,并非显示所有内容。
我可以使用CSS规则吗?或者wkhtmltopdf的cmd参数?或者其他任何方式?
答案 0 :(得分:22)
我了解到这实际上是一个已知问题,不太可能在一段时间内改变。解决方法是在标头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(标题间距解决方法)
答案 1 :(得分:8)
通过页眉和页脚中的<body style='height:50px;overflow:hidden;margin:0;padding:0;'>
以及--header-spacing 30 -T 45mm
参数为我工作。
答案 2 :(得分:4)
确保在页眉/页脚页面的开头有<!doctype html>
。 Webkit以quirksmode呈现页面。
答案 3 :(得分:3)
这对我有用
thead {display:table-header-group;}
tfoot {display:table-row-group;}
tr {page-break-inside:avoid;}
答案 4 :(得分:1)
这对我有用
- 标题间距XX -T XXmm
XX应该是相同的值eq: - header-spacing 20 -T 20mm
答案 5 :(得分: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标签中的情况下。 您还需要在原始文档中制作一个样式标签,以表示不显示任何内容。 (您可以通过脚本添加它)