Как получить общее количество страниц в теле wkhtmltopdf?

Можно ли получить доступ к переменной «topage» в основном теле контента?

Я знаю, что вы можете сделать это в верхних и нижних колонтитулах, но в этом конкретном случае мне нужно поместить в тело предложение, которое гласит:

«Этот документ содержит ХХ страниц».


person Heinrich Lee Yu    schedule 11.09.2014    source источник
comment
Почти уверен, что этот метод работает даже в теле, дайте мне знать, если это не так: github.com /mileszs/wicked_pdf#нумерация страниц   -  person Unixmonkey    schedule 15.09.2014
comment
Это не так. Я думаю, что wkhtmltopdf делает следующее: визуализирует тело, затем визуализирует верхний/нижний колонтитул на странице со страницей, нет. страниц и т. д., взятых из предыдущего шага. Верхний/нижний колонтитул имеет зарезервированные места на странице, поэтому он не вводит новые страницы при отображении верхнего/нижнего колонтитула.   -  person Heinrich Lee Yu    schedule 17.09.2014
comment
Что ж, если вы когда-нибудь хотели переключиться на что-то другое, этот пример показывает именно это: cloudformatter.com/CSS2Pdf .CustomTipsTricks.HeaderFooter   -  person Kevin Brown    schedule 02.10.2014
comment
Вы нашли решение для этого?   -  person Seb33300    schedule 15.03.2016


Ответы (1)


Это работает для меня. Но нужно быть в шапке (или футере) В теле думаю нельзя, как сказали в GitHub http://github.com/wkhtmltopdf/wkhtmltopdf/issues/1889

Чтобы поместить эту информацию в нижний колонтитул, вы можете увидеть @Unixmonkey по этой ссылке: https://github.com/mileszs/wicked_pdf#page-numbering

<html>
  <head>
    <script>
      function number_pages() {
        var vars={};
        var x=document.location.search.substring(1).split('&');
        for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = decodeURIComponent(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 onload="number_pages()">
    Page <span class="page"></span> of <span class="topage"></span>
  </body>
</html>

person cmnardi    schedule 19.09.2016
comment
document.location.search определяется только для разделов верхнего и нижнего колонтитула страницы. В основном содержании просто есть пустая строка :( - person Will Hitchcock; 16.11.2016
comment
возможно, это невозможно github.com/wkhtmltopdf/wkhtmltopdf/issues/1889 Нет, это невозможно сделать - возможно, изменится макет страницы, возможно, будут созданы новые страницы... и так далее. - person cmnardi; 16.11.2016