У меня есть код html/JS, который генерирует N таблиц на основе пользовательского ввода. Я пытаюсь разделить содержимое на страницах формата «А4» и иметь не более 6 таблиц на каждой странице, чтобы дать возможность печатать в формате PDF.
Я использую встроенную функцию JS window.print()
. Проблема в том, что когда браузер открывает окно предварительного просмотра печати, обнаруживает только 2 страницы, и только содержимое первой страницы отображается правильно, а остальное выглядит пустым.
Вы можете попробовать, например, сгенерировать 24 таблицы (это будет 4 страницы), и при нажатии на печать будут обнаружены только 2 страницы.
В основном я использую это для преобразования в PDF содержимого, сгенерированного другими двумя кодами JS.
<button onclick = "printPDF()">Print PDF</button>
function printPDF() {
window.print();
}
Как это исправить, чтобы печатать все страницы? Спасибо
Одна проблема — hidden
переполнение страницы
поэтому просто удалите это, чтобы все содержимое можно было распечатать. Обратите внимание, что вы можете переместить hidden
только на кнопку во время печати.
И второе, вам может понадобиться page-break-after: always;
когда блоки контейнера таблицы достигают 6 до предела страницы, попробуйте добавить это. Обратите внимание, что даже со всеми 6 он не добавит пустую страницу, если только таблица не будет слишком близко к краю, поэтому она переполняется, следовательно, 7-й (13-й .. и т. д.) вызывает разрыв страницы.
Позднее Изменить Мне кажется, что в скрипке добавлен автоматический разрыв страницы, поэтому он может не понадобиться? Однако у меня также были проблемы с оценкой высоты страницы FireFox, поэтому для моей печати MS пришлось уменьшить на 3-6 мм, чтобы не вызвать дополнительную страницу!
https://jsfiddle.net/61qshzvc/
Еще раз спасибо. На этот раз он уже обнаруживает все страницы, хотя создает лишнюю, почти пустую, потому что содержит одну-две строки из предыдущих таблиц. Кажется, что он постепенно перемещается на несколько пикселей на каждой странице, поэтому некоторые из них кажутся обрезанными.
Большое спасибо за вашу помощь, код работает лучше, чем мой оригинальный
Спасибо за вашу помощь и предложения. Не знаю почему, но когда я перехожу по вашей ссылке, происходит то же самое. Обнаруживает только 2 страницы, а вторая пуста. Я пробовал в браузерах Chrome и Brave.