Почему не печатаются изображения?
Вывожу на печать данные таким образом:
function printInventoryForm() { var container = $('<div />'); var winPrint = window.open('','','left=50,top=50,width=800,height=640,toolbar=0,scrollbars=1,status=0'); winPrint.document.write(buildStylesToPrint()); buildHeaderFormToPrint(container); buidlMainTblFormToPrint(container); // buildFilterSettingsToPrint(container); // replace & with & var code = container[0].outerHTML.replace(/&/g, "&"); winPrint.document.write(code); //return; winPrint.document.close(); winPrint.focus(); winPrint.print(); winPrint.close(); } Пояснения: методы buildHeaderFormToPrintб buidlMainTblFormToPrint создают с помощью jQuery блок для вывода на печать. Блок представляет собой не полную HTML-страницу, а только DIV, в который помещается таблица с данными. В этом блоке есть картинки, которые формируются динамически с помощью php, примерно так: <img src='barc_img.php?t=2&w=250&h=30&d=1234567890' /> В результате открывается окно, в котором есть всё, что должно быть - есть и HTML-разметка, и данные, и картинки. На превью печати есть только таблица с данными, картинок же нет, и, как следствие, их нет на отпечатанном документе. В чём дело? Куда пропадают картинки? |
Изображениям нужно время для загрузки.
|
Спасибо, похоже на то. Но как сделать так, чтобы изображения загрузились?
|
Производить печать по событию загрузки документа - onload.
|
Если убрать команду winPrint.print(), и нажать вместо неё Ctrl-P, то изображения отображаются на превью и выводятся на печать.
|
Я пробовал его подключить - это первое, что попробовал сделать после твоего ответа, но оно не срабатывает. Подключал обработчик так:
winPrint.onload = function() { alert('loaded'); } Пытался это сделать и до, и после записи в документ - не срабатывает. |
winPrint.write(code); - записали документ
winPrint.onload = function() { winPrint.print(); - печатаем } в противном случае у вас даже на чих времени не будет, а в печать будет отдано то, что имеет документ на текущий момент. |
Цитата:
PS. Что распечатать, а чего не надо, этим ведь можно управлять и посредством CSS, почему бы не использовать, тогда и излишних окон не потребуется. |
Если добавлять onload после записи в документ, и оставить только alert, то он срабатывает - выскакивает сообщение. Как только добавляю winPrint.print() - всё сбивается, и alert не появляется.
|
Цитата:
Во-вторых, изображения на основной таблице не нужны, они появляются только при печати - это штрих-код, на основной странице он только мешает. |
Часовой пояс GMT +3, время: 04:03. |