POST запрос вывод на печать
Всем привет!
Есть страница с кнопкой на печать... При нажатии открывается подготовленная страница для печати с колонтитулами. Я хочу чтобы их не было. Как вариант придумал перед выводом на печать генерировать страницу в pdf и ее уже выводить на печать, тогда колонтитулы верхние и нижние пропадают... Получаем красивую страницу для печати... Страница начальная: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>jQuery Print Plugin</title> <script src="jquery-1.4.4.min.js" type="text/javascript"></script> <script src="jquery.printPage.js" type="text/javascript"></script> <script> $(document).ready(function() { $(".btnPrint").printPage(); }); </script> </head> <body> <h3>Пример:</h3> <div id="main_tab">тут таблица с данными...</div> <p>При нажатии на кнопку, будет подгружен iframe и напечатан!</p> <p><a class="btnPrint" href='iframes/iframe.php'>Печатать!</a></p> </body> </html> Ссылка на скрипт jquery.printPage.js iframe.php работает с mpdf60 для генерации pdf документа. Тут все работает. Если кратко, то в документе формируется html который конвертируется в pdf формат. Я хочу не использовать в этом документе кучу sql запросов для генерации новой таблицы с данными, А взять ее из <div id="main_tab">. Думаю что наверное правильный способ это передать ее через POST запрос. Вот так я вывожу страницу на печать... Это без генерации pdf. Мне нравится как работает скрипт jquery.printPage.js. Вывод на печать осуществляется красиво, и наверное самое главное что использует iframe для генерации pdf формата... $("#print_tab").click(function() { var new_wnd = window.open(location.href+"?tmpl=component&print=1&layout=default&page=", "subWindow", "status,menubar,height=500,width=500,scrollbars=yes"); var new_content = '<html><head><title>Мой сайт</title><meta http-equiv="content-type" content="text/html; charset=utf-8" />'; css_path = "<?php echo JURI::base().'css/style_print.css'; ?>" new_content += '<script type="text\/javascript">function ImportStyleFile () {' new_content += 'var linkTag = document.createElement ("link");' new_content += 'linkTag.href = "'+ css_path +'";' new_content += 'linkTag.rel = "stylesheet";' new_content += 'var head = document.getElementsByTagName ("head")[0];' new_content += 'head.appendChild (linkTag);' new_content += '}<\/script>'; new_content += '</head><body onload="ImportStyleFile()">'; new_content += '<img src="<?php echo JURI::base().'img/spec.png'.'?random='.rand()*1000000; ?>" class="leftimg">'; new_content += $("#main_tab").html(); new_content += '</body><html>'; new_wnd.document.write(new_content); new_wnd.document.close(); new_wnd.focus(); setTimeout(function() { new_wnd.print(); new_wnd.close(); }, 100); }); Подскажите пожалуйста, как можно переменную new_content передать POST запросом при выполнении jquery.printPage ?? |
По идее, вам не нужно ничего никуда передавать. jquery.printPage.js грузит указанный в href файл в iframe, откуда можно спокойно достать данные из родительского окна
Вот простенький пример, иллюстрирующий эту мысль: Начальная страница <!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>jQuery Print Plugin</title> <script src="scripts/jquery-1.11.3.min.js" type="text/javascript"></script> <script src="scripts/jquery.printPage.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $(".btnPrint").printPage(); }); </script> </head> <body> <div id="main_tab">тут таблица с данными...</div> <h3>Пример:</h3> <p>При нажатии на кнопку, будет подгружен iframe и напечатан!</p> <p><a class="btnPrint" href='blank.html'>Печатать!</a></p> </body> </html> Загружаемая страница blank.html !DOCTYPE html> <html> <head> <script src="scripts/jquery-1.11.3.min.js" type="text/javascript"></script> <script> function init() { $("body").html($('#main_tab', window.parent.document).html()) ; } </script> </head> <body id= "body" onload="init()"> </body> </html> Соответственно, ваш скрипт по формированию новой страницы (но без создания нового окна - новым окном будет iframe) надо вставить в iframe.php и вытягивать данные из main_tab родителя |
Часовой пояс GMT +3, время: 15:30. |