wkhtmltopdf page-break-after有空格

时间:2014-11-21 09:51:27

标签: html css printing wkhtmltopdf

我使用WKHTMLTOPDF从适合打印的网页生成 PDF 。 我从版本 0.10.0 rc2 升级到 0.12.1 (带有修补的qt)但现在当我使用CSS属性时比如page-break-before:always;它会插入一堆空白,而page-breake-inside:avoid;不起作用,这很神奇。

我使用此电话:

/usr/local/bin/wkhtmltopdf --encoding 'UTF-8' 'page-to-print' '/tmp/PDFV59OZt'

我尝试过使用和不使用--print-media-type--no-print-media-type

当我在浏览器中渲染打印机友好页面时,以及当我尝试打印它时(在我制作pdf之前)它可以正常工作。

我的CSS示例:

//if i want to make a static page-break between two elements
page-break{
    page-break-after:always;
    clear:both;
    display:block;
}
//Avoid cutting images
img{
    display:block;
    page-break-before:auto;
    page-break-after:auto;
    page-break-inside:avoid;
}
//avoid cutting text
p,em,li,span,tr{ 
    page-break-inside:avoid; 
}

只有分页符:始终;工作,但它插入一堆白色空间。 有没有人对此有任何想法?

2 个答案:

答案 0 :(得分:3)

我使用的是版本wkhtmltopdf 0.12.0

对我来说,分页符只适用于--print-media-type。 没有它,图像的分页保护可以正常工作,但不能在分页后或之前使用。

我必须为打印介质制作一个特殊的css文件才能使其正常工作。

将纸张尺寸设置为' A3'或者使用&溢出:可见'并没有任何区别。

另见WKHTMLTOPDF with pdfkit on Rails ignoring table page breaks

答案 1 :(得分:1)

我找到的解决方案是将页面大小设置为A3,这使得所有聪明的打印机友好工作都能正常工作。

我使用此WKHTMLTOPDF调用:

/usr/local/bin/wkhtmltopdf --page-size 'A3' --encoding 'UTF-8' '<LINK TO PAGE>' '/tmp/PDFX6BefV'