7 февраля 2020 JavaScript
В этой статье рассмотрим как можно вызвать печать страницы с помощью JavaScript, распечатать отдельные блоки сайта и оформить распечатываемую страницу стилями.
Вызвать печать на странице
Печать документа на странице можно вызвать JavaScript функцией print()
.
Пример:
Печать
Оформление страницы печати
Оформить вид страницы сайта при печати очень просто. Делается это с помощью медиа-запросов. Для этого в стили сайта добавляем @media print
и внутри него пишем стили, которые будут вызваны при печати страницы. В примере ниже на распечатываемой странице сайта отключаем блок с рекламой:
@media print { .adv {display:none;} }
Печать отдельного блока со страницы
Код HTML
Заголовок
Текст Печать
Код JavaScript
function callPrint() { var printCSS = ''; var printTitle = document.getElementById('print-title').innerHTML; var printImg = document.getElementById('print-img').innerHTML; var printText = document.getElementById('print-text').innerHTML; var windowPrint = window.open('','','left=50,top=50,width=800,height=640,toolbar=0,scrollbars=1,status=0'); windowPrint.document.write(printCSS); windowPrint.document.write(printTitle); windowPrint.document.write(printImg); windowPrint.document.write(printText); windowPrint.document.close(); windowPrint.focus(); windowPrint.print(); windowPrint.close(); }
При нажатии кнопки «Печать» происходит вызов функции callPrint()
. Если будете модернизировать код, то тут функции можно передавать к примеру ID блока, который нужно распечатать. В примере мы ничего не передаем и не используем библиотеку jQuery, хотя при более сложной вариации с ней будет проще.
Далее вызывается всплывающее окно, в которое добавляются наши блоки, после чего окно закрывается и открывается окно браузера для печати. Все это делается практически незаметно. И для пользователя это будет выглядеть так, как будто окно печати открылось сразу.