Печать купона
Печать только одного изображения со всей страницы на принтере (без media queries):
- разметить HTML
- добавить JavaScript
- создать отдельную страницу печати
Разметка HTML
<img class="js-printed" src="/images/sample.jpg" width="960" height="600" /> <!-- Что печатать --> <a href="#" class="js-print">Распечатать купон</a> <!-- Кнопка печати -->
Javascript
- print.js
initPrint($('.js-print')); function initPrint($control) { if(!$control.length) return; $control.on('click', function(e) { e.preventDefault(); e.stopPropagation(); var $printed = $('.js-printed'); if(!$printed.length) return; var ref = 'print.html?img=' + encodeURIComponent($printed.attr('src')); OpenInNewTab(ref); }); } function OpenInNewTab(url) { var win = window.open(url, '_blank'); win.focus(); }
Отдельная страница печати
- print.html
<!DOCTYPE html> <html lang="ru"> <head> </head> <style> img { width: 100%; height: auto; } </style> <body> <script type="text/javascript"> var QueryString = function () { // This function is anonymous, is executed immediately and // the return value is assigned to QueryString! var query_string = {}; var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); // If first entry with this name if (typeof query_string[pair[0]] === "undefined") { query_string[pair[0]] = pair[1]; // If second entry with this name } else if (typeof query_string[pair[0]] === "string") { var arr = [ query_string[pair[0]], pair[1] ]; query_string[pair[0]] = arr; // If third or later entry with this name } else { query_string[pair[0]].push(pair[1]); } } return query_string; } (); document.write('<img src="' + decodeURIComponent(QueryString.img) + '"'); window.print(); </script> </body> </html>
Ссылки
- Версия для печати любого сайта Print friendly