如何禁用-前3页页脚html wkhtmltopdf?

zu0ti5jz  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(343)

我正在用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库是否为此提供了一些函数?

mtb9vblg

mtb9vblg1#

删除 onload="subst()"div .
然后通过更改函数的开始行和结束行,将函数更改为自调用函数: function subst() { 变成 (function () { 最后一个(结束) } 变成 })(); 别忘了把脚本从 head . 将其放入 body 低于你的 div . 否则,脚本将在加载html get之前运行,而不会产生任何效果。

相关问题