В настоящее время я использую PHP и получаю полную информацию о пользователе и отображает его в html-таблицу. Проблема, что у меня есть, когда я печатаю 3 таблицы, каждая из них отлично печатается на каждой странице. Но когда я пытаюсь напечатать более 3 таблиц, каждая таблица перемещается вверх, а таблицы печатаются частично на каждой странице (1 ½ пользовательских данных на каждой странице). Я дал фиксированную высоту для таблицы, но все же показывается частично.
Может кто-нибудь предложить Javascript, который будет печатать одну таблицу html на одной странице?
Лучший способ сделать это – использовать CSS. CSS3 имеет свойство page-break-after: always
которое вы можете применить к своей таблице (см. Также http://www.w3schools.com/CSS/pr_print_pageba.asp ). Обратите внимание, что его поддержка разными браузерами еще не так, как должно быть, но IE8 и текущие версии других должны поддерживать его.
Проблема с печатью в браузере заключается в том, что вы не всегда получаете то, что получаете. У людей разные настройки и разрешения принтера, и то, что может идеально поместиться на бумаге одного пользователя, может полностью отключиться от других. В HTML нет надежного способа сделать это.
Лучший способ сделать печатный документ на 100% идеальным – это создать PDF-файл. Существует множество инструментов для создания PDF-документов в PHP – поиск в Google поможет вам найти место, где вам нужно идти.
JavaScript не влияет на печать, кроме как вы можете вызвать диалог печати браузера в некоторых случаях.
Печать CSS может помочь, но даже это не полностью поддерживается или согласовано во всех браузерах ( кашель от кашля )
Если вы хотите сохранить абсолютный контроль над напечатанной частью, это один из немногих примеров, когда я рекомендую PDF-файлы. Свяжите свою ссылку PRINT на своей веб-странице, перезвоните на сервер, скопируйте данные, а затем отформатируйте их в PDF-формате и отправьте обратно в браузер.
Один из способов сделать это – создать новый документ (возможно, в невидимом iframe), выгрузить там содержимое таблицы и вызвать .print()
в iframe.
Как отметил Д.А., вы можете манипулировать печатным CSS; скрывая все, кроме таблицы, которую вы хотите распечатать, но это может не работать в браузерах.