修复wkhtmltopdf标题剪辑内容?

时间:2012-07-12 08:16:24

标签: wkhtmltopdf

我的标题经常剪辑内容,以使其下方的内容不完全可见,看起来好像页面在标题结束前继续在标题下面,因此,并非显示所有内容。

Image demonstrating the problem, content is shown below the header

我可以使用CSS规则吗?或者wkhtmltopdf的cmd参数?或者其他任何方式?

6 个答案:

答案 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标签中的情况下。 您还需要在原始文档中制作一个样式标签,以表示不显示任何内容。 (您可以通过脚本添加它)