Print Me

Вывод на печать страницы сайта/блога.

  

В данном случае на листе не будет показана Панель навигации (navbar-iframe). Аналогичным образом можно поступить с боковой панелью, счетчиками, баннерами и другими элементами.

Можно стили вынести в отдельный файл

22 комментария:

шеф-повар Конгениально!
NMitra, очень не хочу пользоваться той схемой, к которой вы привели меня вчера. Она несет с ссобой массу проблем, решаемых, но проблем. В эту тему,скажите реально ли распечатаь только ту часть текста со страницы, которая отформатирована как, например, цитата, или нумерованный список? Или — можно ли каким-либо образом отформатировать какую-то часть текста на странице, и только она будет выводится на принтер? Я ввобще не могу понять этого, никак! NMitra Без указания галочки «Расширить шаблоны виджета» запрещаем печать заголовка и футера:


.

NMitra Теперь на печать будет выходить только содержание сообщения. Внутри которого на вкладке «Изменить HTML», можно также убрать не нужный для печати материал. На вид и функциональность блога это никак не повлияет.

Согласна, что более удобно было бы, если бы можно было указывать те данные, которые требуются к печати, а не наоборот. Плюс из-за своеобразного кода Blogger приходится клочками убирать материал. шеф-повар Nmitra, спасибо огромное, вы помогли мне пройти этот путь до конца. Два дня я провел в незабываемых джунглях!
Резюме: все-таки я пойду первым, сложным путем, буду создавать параллельный блог с текстовой версией.
Мне удалось очистить для печати самую суть, но в итоге получилась фигня, и это заставит меня пожертвовать стилем ради листа для печати, чего я не очень хочу.
Еще раз огромное спасибо! NMitra Взгляните:

Здесь я не создавала новое сообщение, а убрала лишнее в span

И времени затратила минут 10. Nyukers Все так. Надо по шаблону побегать. Все сделал, только вот первая стр чистой выходит, почему — не знаю.(
http://nyukers.blogspot.com NMitra Я на печать не вывожу, использую программу PDF24 Editor, которая позволяет сохранить файл при нажатии на значок принтера. В ней первая страница выходит пустой. Текст печатается на следующих четырёх, но он присутствует. Nyukers вот почему первая пустая и непонятно. NMitra Нужно что-то ещё закрывать. Правда, я не помню уже что именно. Анонимный Спасибо 🙂 NMitra Рада оказаться полезной 🙂 Анонимный Спасибо большое! Анонимный Почему при печати ссылки подчеркиваются. NMitra Свойства

Читайте также:  Запуск java для android

можете убрать. Игорь Пушков А как отправить на быструю печать? NMitra Горячие клавиши

Источник

Печать HTML страниц

Очень часто разработчики забывают про печатную версию сайта, поэтому можно встретить такой результат на бумаге:

Неудачный пример версии для печати

Подключение CSS

Специальный CSS-файл:

Правило @media print:

Третий метод – отдельная страница или шаблон, свёрстанные чисто под печать (без @media print ), например так сделана печать писем в Яндекс.Почте. Такой метод существенно облегчает отладку.

Размер страницы

  • при dpi=75, А4 имеет 877×620 px
  • при dpi=150, А4 имеет 1754×1240 px
  • при dpi=300, А4 имеет 3508×2480 px

Поля

В целях экономии бумаги лучше использовать минимальные поля – 10 мм по краям и 20 мм слева для возможности брушеровки.

Поля по ГОСТ Р 6.30-2003 (оформление документов):

По ГОСТ 7.32-2017 (научные работы, рефераты):

Удаление лишних стилей

Тени и другие эффекты дизайна лучше убрать, также следует установить черный цвет шрифта.

Размер шрифта

Если на сайте размер шрифтов указан в пикселях, то при печати размер будет больше чем на экране. Поэтому нужно выставить новые значения:

Скрытие лишних элементов

Т.к. на бумаге элементы навигации, баннеры, шапка, подвал, и другие элементы не несут какой либо пользы, то лучше их скрыть или оставить в них только самое важное.

Другой вариант скрытия не нужного контента – в HTML-коде, добавить к скрываемым элементам класс noprint .

Не стоить забывать о , обычно для сайтов с фиксированным размером ему задана ширина, отступы и центрирование, поэтому при печати возможна обрезка контента с правого края, такие стили стоит обнулить.

Показ элемента только при печати

@media screen < .element < display: none; >> @media print < .element < display: block; >>

Печать фона background

По умолчанию браузеры не печатают background у элементов, но его можно пустить на печать принудительно c помощью свойства -webkit-print-color-adjust: exact; и нового color-adjust: exact; .

Уточнение: свойство не будет работать если цвет фона и шрифта слабоконтрастные.

Разрывы страниц

В CSS доступно управление переносами, соответственно для списков и таблиц нужно запретить переносы:

Если требуется принудительно сделать перенос после элемента:

Отображение URL в ссылках

Печать ссылок бесполезна т.к. будет не известно, куда они ведут. Можно добавить приписку URL рядом с анкором (исключая якорные ссылки).

Пример вставки URL:

Вывод QR-кода при печати

Будет очень удобно если на печатаной странице будет QR-код с ссылкой на сайт. Сгенерировать код можно с помощью сервиса «Google QR Codes» и вставить его с помощью JQuery.

Читайте также:  Www authenticate ntlm php

Размещение QR-кода на странице для печати

Запуск печати

В JS, печать запускается методом window.print() . Возможны следующие варианты: Запуск печати по клику на ссылку:

Следующий вариант – пользователь переходит на следующую страницу, где сразу начинается печать, после пользователь возвращается на исходную.

  

И последний вариант – печать происходит в отдельной вкладке браузера, после печати она автоматически закрывается.

  

Источник

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

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

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

  

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

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

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

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

Материалы:

Источник

Printing

There may be times in which your website or application would like to improve the user’s experience when printing content. There are a number of possible scenarios:

  • You wish to adjust layout to take advantage of the size and shape of the paper.
  • You wish to use different styles to enhance the appearance of your content on paper.
  • You wish to use higher resolution images for a better result.
  • You want to adjust the user experience of printing, such as presenting a specially-formatted version of your content before printing begins.

There may be other cases in which you want to manage the printing process, but these are some of the most common scenarios. This article provides tips and techniques for helping your web content print better.

Using a print style sheet

Add the following to your tag.

link href="/path/to/print.css" media="print" rel="stylesheet" /> 

Using media queries to improve layout

You can use the CSS @media at-rule to set a different appearance for your webpage when it is printed on paper and when it is displayed on the screen. The print option sets the styles that will be used when the content is printed.

Add this at the end of your stylesheet. Note that specificity and precedence rules still apply:

@media print  /* All your print styles go here */ #header, #footer, #nav  display: none !important; > > 

Detecting print requests

Browsers send beforeprint and afterprint events to let content determine when printing may have occurred. You can use this to adjust the user interface presented during printing (such as by displaying or hiding user interface elements during the print process).

Examples

Here are some common examples.

Open and automatically close a popup window when finished

If you want to be able to automatically close a popup window (for example, the printer-friendly version of a document) after the user prints its contents, you can use code like this:

doctype html> html lang="en-US"> head> meta charset="utf-8" /> meta name="viewport" content="width=device-width" /> title>JavaScript Window Close Exampletitle> script> function popuponclick()  const my_window = window.open( "", "mywindow", "status=1,width=350,height=150", ); my_window.document.write(""); my_window.document.write(''); my_window.document.write( "

When you print this window, it will close afterward.

"
, ); my_window.document.write(""); >
script> head> body> p> To try out the code>afterprintcode> event, click the link below to open the window to print. You can also try changing the code to use code>beforeprintcode> to see the difference. p> p>a href="javascript: popuponclick()">Open Popup Windowa>p> body> html>

If you want to be able to print an external page without opening it, you can utilize a hidden (see: HTMLIFrameElement), automatically removing it after the user prints its contents. The following is a possible example which will print a file named externalPage.html :

doctype html> html lang="en-US"> head> meta charset="utf-8" /> meta name="viewport" content="width=device-width" /> title>MDN Exampletitle> script> function closePrint()  document.body.removeChild(this.__container__); > function setPrint()  this.contentWindow.__container__ = this; this.contentWindow.onbeforeunload = closePrint; this.contentWindow.onafterprint = closePrint; this.contentWindow.focus(); // Required for IE this.contentWindow.print(); > function printPage(sURL)  const hideFrame = document.createElement("iframe"); hideFrame.onload = setPrint; hideFrame.style.position = "fixed"; hideFrame.style.right = "0"; hideFrame.style.bottom = "0"; hideFrame.style.width = "0"; hideFrame.style.height = "0"; hideFrame.style.border = "0"; hideFrame.src = sURL; document.body.appendChild(hideFrame); > script> head> body> p> span onclick="printPage('externalPage.html');" style="cursor:pointer;text-decoration:underline;color:#0000ff;"> Print external page! span> p> body> html> 

See also

Found a content problem with this page?

This page was last modified on Jul 7, 2023 by MDN contributors.

Источник

Оцените статью