Javascript печать блока с HTML страницы

При создании очередного сайта столкнулся с задачей печати HTML-страницы. На странице была информация о проекте (коттеджи) и ее нужно было по клику распечатать. Для решения идеально подходит Javascript. Итак, создаем такую структуру:

<div id="print-content">
Содержимое для печати
</div>

Обязательно задаем идентификатор. Содержимое может быть любым. Далее напишем небольшую функцию для печати веб-страницы:


<script>
function CallPrint(strid) {
  var prtContent = document.getElementById(strid);
  var prtCSS = '<link rel="stylesheet" href="/templates/css/template.css" type="text/css" />';
  var WinPrint = window.open('','','left=50,top=50,width=800,height=640,toolbar=0,scrollbars=1,status=0');
  WinPrint.document.write('<div id="print" class="contentpane">');
  WinPrint.document.write(prtCSS);
  WinPrint.document.write(prtContent.innerHTML);
  WinPrint.document.write('</div>');
  WinPrint.document.close();
  WinPrint.focus();
  WinPrint.print();
  WinPrint.close();
  prtContent.innerHTML=strOldOne;
}
</script>

И немного поясню. Эта функция откроет новое popup-окно, вызовет функцию печати. После печати автоматически закроет окно. В новое окно передается содержимое блока print-content. Также вызываем стили CSS, чтобы отформатировать содержимое. И, конечно, надо вызывать функцию. Делаем через Javascript функцию onClick:

<a onClick="javascript:CallPrint('print-content');" title="Распечатать проект">Распечатать</a>

Ну вот и все. Просто и с душой.

Если браузер не видит CSS стили

Если браузер по той или иной причине не хочет видить CSS, то можно упростить код, удалив пару строк:

<script>
function CallPrint(strid) {
  var prtContent = document.getElementById(strid);
  var WinPrint = window.open('','','left=50,top=50,width=800,height=640,toolbar=0,scrollbars=1,status=0');
  WinPrint.document.write('');
  WinPrint.document.write(prtContent.innerHTML);
  WinPrint.document.write('');
  WinPrint.document.close();
  WinPrint.focus();
  WinPrint.print();
  WinPrint.close();
  prtContent.innerHTML=strOldOne;
}
</script>

Материалы:

  1. How to print part of web page?
Google показал будущее поиска. И оно может убить привычный интернет

Google показал AI-поиск нового поколения, где пользователь всё реже переходит на сайты. Звучит удобно, но у такой модели есть опасный побочный эффект: сайты теряют трафик, доход и мотивацию создавать контент. В итоге AI рискует уничтожить сам открытый интернет, на котором обучается. Разбираю, почему эпоха SEO-портянок заканчивается и почему реальный человеческий опыт становится важнее ключевых слов.

Почему сайт может ломаться, даже если кажется, что всё работает

Рассказываю из 17-летнего опыта, почему техническая поддержка сайта — это не развод на деньги. Реальные примеры, цены и подводные камни обслуживания.

Чек-лист школьного сайта, о котором почему-то никто не говорит

Один раз я потратил ночь, проверяя сайт школы перед жалобой в департамент. С тех пор у меня есть личный чек-лист проверки сайта образовательной организации — без бюрократии, но с реальными подводными камнями.

Разработка корпоративного сайта: от стратегии до запуска

Разработка корпоративного сайта — не про «красивый дизайн» и шаблон на WordPress. Это про доверие, продажи, удобство партнёров и сотрудников. Разбираем, как сделать сайт, который работает на бренд, а не лежит «для галочки».

Последние кейсы
Посмотреть все проекты
Начать проект вместе с нами
Заполните форму и отправьте
нам сообщение!
Если у Вас возникли вопросы, предложения, либо Вы желаете оформить заявку на заказ услуги — Добро пожаловать!
Контакты:
Бронзовый партнер October CMS:
Бронзовый партнер October CMS