Я делаю следующее для создания PDF из HTML:
wkhtmltopdf --grayscale --page-height 10in --page-width 8in index.html index.pdf
У меня есть такая структура HTML:
<html>
<head>
<meta charset="utf-8">
<style>
.page {
page-break-after: always;
height: 100%;
}
</style>
</head>
<body>
<div class='page'>asdf</div>
<div class='page'>hkl</div>
<script>
window.addEventListener('load', function(){
var p = document.querySelector('.page')
var W = p.offsetWidth
var H = p.offsetHeight
document.body.innerHTML = 'W:' + W + 'H:' + H
})
</script>
</body>
</html>
По сути, я пытаюсь найти способ измерения размеров «страницы» (а не тела или какого-либо обычного элемента). Итак, я добавил 2 страницы, чтобы убедиться, что свойство CSS page-break-after
, как мы надеемся, вступит в силу. Окончательный результат (если вы закомментируете часть document.body.innerHTML = ...
) выглядит так, как будто он разделен на страницы. Но когда я регистрирую его, как показано в приведенном выше примере (супер хакер, не знаю, как console.log
в wkhtmltopdf
), он говорит:
W:0 H:0
Почему он так говорит? Как я могу получить измерения общей "страницы"? Я хотел бы получить размеры страницы, чтобы я мог рассчитать количество символов, которые могут уместиться на строке с учетом размера шрифта, или количество строк, которые могут уместиться на странице с учетом высоты строки. Но я не могу сделать это, не зная, как получить размеры страницы.