我使用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;
}
只有分页符:始终;工作,但它插入一堆白色空间。 有没有人对此有任何想法?
答案 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'