wkhtmltopdf:在页脚上显示内容,例如页码

wkhtmltopdf: show content on footer, for example page number

我希望此命令在生成的 pdf 的底部显示 1/1,但没有……有什么想法吗?

wkhtmltopdf --footer-center [page]/[topage] www.google.com /tmp/foobar.pdf

版本:Linux

上的 0.12.2.4

似乎是稳定性问题,但 linuxdebianubuntu)版本 0.12.2.4 尚未稳定发布,但 只是为了在他们的存储库 here.

中提到的调试目的

这是 version0.12.4

的工作屏幕截图

版本0.12.4

或者您可以通过 以下代码段 添加页码以添加页脚,如前所述 here

  <html><head><script>
  function subst() {
    var vars={};
    var x=window.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]];
    }
  }
  </script></head><body style="border:0; margin: 0;" onload="subst()">
  <table style="border-bottom: 1px solid black; width: 100%">
    <tr>
      <td class="section"></td>
      <td style="text-align:right">
        Page <span class="page"></span> of <span class="topage"></span>
      </td>
    </tr>
  </table>
  </body></html>

我认为这个问题可能是由版本 0.12.2.4 引起的,否则,这个 --footer-center [page]/[topage] 命令将完成您的工作。

还有一个例子,我检查过 substitutePdfVariables() 在 body onload 中被调用。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <script>
        function substitutePdfVariables() {

            function getParameterByName(name) {
                var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
                return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
            }

            function substitute(name) {
                var value = getParameterByName(name);
                var elements = document.getElementsByClassName(name);

                for (var i = 0; elements && i < elements.length; i++) {
                    elements[i].textContent = value;
                }
            }

            ['frompage', 'topage', 'page', 'webpage', 'section', 'subsection', 'subsubsection']
                .forEach(function(param) {
                    substitute(param);
                });
        }
    </script>
</head>
<body onload="substitutePdfVariables()">
    <p>Page <span class="page"></span> of <span class="topage"></span></p>
</body>
</html>

在这里Docs您可以找到更多关于页眉和页脚的变量。