我正在用wkhtmltopdf生成pdf。有一个问题,我不能在前三页禁用--页脚html。
下面是生成pdf的java代码:
pdf.addPageFromString(parseThymeleafTemplate());
pdf.addParam(new Param("--page-size", "A4", "-B", "35mm", "-L", "0", "-R", "0", "-T", "0"));
pdf.addParam(new Param("--footer-html", "/Users/kuanysh/IdeaProjects/pdf-report-sender/src/main/resources/templates/footer.html"));
和my footer.html
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script>
function subst() {
var vars = {};
var x = document.location.search.substring(1).split('&');
for (var i in x) {
var z = x[i].split('=', 2);
vars[z[0]] = unescape(z[1]);
}
var x = ['frompage', 'topage', 'page', 'webpage', 'section', 'subsection', 'subsubsection'];
for (var i in x) {
var y = document.getElementsByClassName(x[i]);
for (var j = 0; j < y.length; ++j) y[j].textContent = vars[x[i]];
if (vars['page'] === 1) { // If page is 1, set FakeHeaders display to none
document.getElementById("stopFooter").style.display = 'none';
}
if (vars['page'] === 2) { // If page is 1, set FakeHeaders display to none
document.getElementById("stopFooter").style.display = 'none';
}
if (vars['page'] === 3) { // If page is 1, set FakeHeaders display to none
document.getElementById("stopFooter").style.display = 'none';
}
}
}
</script>
</head>
<body>
<div onload="subst()">
<footer class="footer" id="stopFooter">
<p>I am footer</p>
<div class="line"></div>
<p>Hello</p>
</footer>
</div></body>
</html>
但它不起作用。wkhtmltodpf库是否为此提供了一些函数?
1条答案
按热度按时间mtb9vblg1#
删除
onload="subst()"
从div
.然后通过更改函数的开始行和结束行,将函数更改为自调用函数:
function subst() {
变成(function () {
最后一个(结束)}
变成})();
别忘了把脚本从head
. 将其放入body
低于你的div
. 否则,脚本将在加载html get之前运行,而不会产生任何效果。