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

时间:2012-09-14 15:37:32

标签: javascript css pdf-generation wkhtmltopdf

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

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

PDF库确实有javascript支持,但element.offsetHeight似乎不准确,所以我无法检查填充正文的数量,以便制作整页。

有没有人有类似的经历或有没有人有一个好主意?

2 个答案:

答案 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。

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