Среди нескольких других параметров номер страницы и общее количество страниц передаются в нижний колонтитул HTML в виде параметров запроса , как указано в официальных документах:
... аргументы [номер страницы] отправляются в HTML-документы верхнего / нижнего колонтитула способом GET.
Источник: http://wkhtmltopdf.org/usage/wkhtmltopdf.txt
Таким образом, решение состоит в том, чтобы получить эти параметры, используя немного JS, и отобразить их в шаблон HTML. Вот полный рабочий пример HTML нижнего колонтитула:
<!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>
substitutePdfVariables()
вызывается в теле onload
. Затем мы получаем каждую поддерживаемую переменную из строки запроса и заменяем содержимое всех элементов соответствующим именем класса.