Javascript HTML/CSS到PDF,所有页面上的背景图像

Javascript HTML/CSS到PDF,所有页面上的背景图像,javascript,css,pdf-generation,wkhtmltopdf,Javascript,Css,Pdf Generation,Wkhtmltopdf,我正在从用户提交的HTML/CSS生成PDF。客户要求PDF具有背景图像以添加一些品牌。PDF库是wkhtmltopdf11RC1 我可以使用PDF转换库在后台打印图像,但真正的问题是,主体的高度不能保证是纸张高度的倍数,因此最后一页通常会被截断,而背景图像不会显示 PDF库确实支持javascript,但是元素。offsetHeight似乎不准确,因此我无法检查要填充多少正文才能生成完整的页面 有没有人有过类似的经历,或者有没有人有好主意?如果插件依靠身体的高度来做出打印决定,那么这可能会奏效

我正在从用户提交的HTML/CSS生成PDF。客户要求PDF具有背景图像以添加一些品牌。PDF库是wkhtmltopdf11RC1

我可以使用PDF转换库在后台打印图像,但真正的问题是,主体的高度不能保证是纸张高度的倍数,因此最后一页通常会被截断,而背景图像不会显示

PDF库确实支持javascript,但是
元素。offsetHeight
似乎不准确,因此我无法检查要填充多少正文才能生成完整的页面


有没有人有过类似的经历,或者有没有人有好主意?

如果插件依靠身体的高度来做出打印决定,那么这可能会奏效。它所做的是将正文的高度设置为页面高度的倍数。你必须弄清楚纸张的高度是多少——标准是每英寸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的javascript来完成

CSS:


不幸的是
var currentBodyHeight=$('body').height()
由于某些原因没有给出身体高度的准确指示,如原始帖子中所述。我已经按照Nenotlep的建议使用了PDFtk


这并不太棘手,只是要确保文件被正确保存和删除,而且我总是保留对临时文件的引用。

哦,这很难做到。你能发布一张图片或PDF本身吗?这不是一个真正的解决方案,但是你可以考虑对PDF进行后处理(使用类似PDFtk的东西,甚至咬入PDF格式),并在那里添加背景。如果你想走这条路,如果你能把你的发现发出去,我将不胜感激!我确实对这样的事情感到好奇。我们打算尝试将一个PDF文件分层到另一个PDF文件上。我会调查一下,让你知道。我在想与@Nenotlep Imagemagick、convert和pdftk一样的东西可能会有帮助。我很好奇。在wkhtmltopdf中,页面高度的计算非常复杂;请参阅
$(document).height()上的讨论部分
也给出了不准确的measurement.html,body{height:100%;margin:0}-它仍然返回不准确的body height?是的。请相信我,我花了很长时间尝试所有这些“显而易见”的事情。我正在寻找一个已知的wkhtmltopdf问题的已知修复,或者一个开箱即用的建议,比如来自Nenotlep的建议。谢谢你的帮助。
body {
  margin:0
}