我正在从用户提交的HTML / CSS生成PDF。客户要求PDF具有背景图像以添加一些品牌。 PDF库是wkhtmltopdf11RC1。
我可以使用PDF转换库在后台打印图像,但真正的问题是身体的高度不能保证是纸张高度的倍数,因此最后一页通常会被截断并且背景图像未显示。
PDF库确实有javascript支持,但element.offsetHeight
似乎不准确,所以我无法检查填充正文的数量,以便制作整页。
有没有人有类似的经历或有没有人有一个好主意?
答案 0 :(得分:0)
如果插件依赖于身体的高度来做出打印决定,那么这可能会起作用。它的作用是将主体的高度设置为页面高度的倍数。您将不得不弄清楚纸张高度是多少 - 标准是每英寸72像素。所以11.5英寸就像是841像素,但你可能需要调整边距。
var paperHeight = 841;
var currentDocHeight = $(document).height();
var pages = Math.ceil(currentDocHeight / paperHeight);
var newBodyHeight = pages * paperHeight;
$('body').css('height', newBodyHeight);
我已经使用jQuery来缩小答案,但这也可以在jQuery-less javascript中完成。
CSS:
body {
margin:0
}
答案 1 :(得分:0)
不幸的是var currentBodyHeight = $('body').height();
由于某种原因没有给出身体高度的准确指示,正如原帖中所提到的那样。我已经按照Nenotlep的建议使用了PDFtk。
这不是太棘手,只需要确保正确保存和删除文件,我总是保留对临时文件的引用。