6

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

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

PDF 库确实有 javascript 支持,但element.offsetHeight似乎并不准确,因此我无法检查要填充多少内容才能制作一整页。

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

4

2 回答 2

1

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

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

于 2012-10-08T08:45:47.970 回答
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 的 javascript 中完成。

CSS:

body {
  margin:0
}
于 2012-10-06T17:37:34.123 回答