| |||
![]() Estimados señores del foro, quiero imprimir el contenido de un DIV y para ello estoy utilizando el pluggin jprint.js de JQuery, el cual crea un Iframe a partir del contenido del DIV, le da el foco al Iframe, manda a imprimir y lanza un alert() (ahi todo bien), el problema es cuando se lo quito el alert(), imprime todo el contenido de la pagina Padre y no el del Iframe, pese a que supuestamente tiene el foco el Iframe. ¿ que puede estar sucediendo en este caso cuando ya no tiene el alert()? o que causa el alert al ejecutarse que hace que funcione bien ... Por favor si alguien tiene una sugerencia al respecto, espero sus comentarios gracias |
| |||
Respuesta: Imprimir un Iframe desde Pagina Padre Gracias maycol por tu pronta respuesta, basicamente se trata de un DIV y un Boton imprimir que se mostrara en un modalpopupExtender(que esta detro de una pagina Padre y tiene otros controles mas) que se carga con resultado de x proceso en este caso un comprobante o boleta de x transaccion (puede estar estructurado en una tabla) asi: <div id="divtestImpresion" runat="server"><table id="Cabecera" style="font-size: 11px; font-family: verdana;" border="0" cellpadding="1" cellspacing="1"><tbody><tr><td rowspan="3" width="15%" align="center" nowrap="nowrap"><img alt="Logo" src="http://www.forosdelweb.com/f13/Images/Sitio/logo.png" align="middle"></td><td width="60%" align="center" nowrap="nowrap">Empresa de Prueba</td><td width="10%" align="right" nowrap="nowrap">Nro.Transacción:</td><td width="15%" align="right" nowrap="nowrap">XXXXXXXXX</td></tr><tr><td width="60%" align="center" nowrap="nowrap">NOTA DE DEBITO XXXXX </td><td width="10%" align="right" nowrap="nowrap">Referencia:</td><td width="15%" align="right" nowrap="nowrap">YYYYYYY</td></tr><tr><td width="60%" align="center" nowrap="nowrap">SUB TITULO</td><td width="10%" align="right" nowrap="nowrap">Fecha:</td><td width="15%" align="right" nowrap="nowrap">16/02/2010</td></tr><tr><td width="15%" align="center" nowrap="nowrap">2010</td><td width="60%" nowrap="nowrap"></td><td width="10%" align="right" nowrap="nowrap">Hora:</td><td width="15%" align="right" nowrap="nowrap">16:41:45</td></tr></tbody></table><table id="Fila0" style="width: 19cm; font-size: 11px; font-family: verdana;" cellpadding="1" cellspacing="0"><tbody><tr><td style="width: 10cm;" align="Left" nowrap="nowrap">CLIENTE: NOMBRE CLIENTE</td><td style="width: 9cm;" nowrap="nowrap"></td></tr></tbody></table><table id="Fila1" style="width: 19cm; font-size: 11px; font-family: verdana;" cellpadding="1" cellspacing="0"><tbody><tr><td style="width: 10cm;" align="Left" nowrap="nowrap">Direccion:</td><td style="width: 9cm;" align="Left" nowrap="nowrap">La direccion del cliente</td></tr></tbody></table><table id="Fila2" style="width: 19cm; font-size: 11px; font-family: verdana;" cellpadding="1" cellspacing="0"><tbody><tr><td style="width: 10cm;" align="Left" nowrap="nowrap">Otro detalle:</td><td style="width: 9cm;" align="Left" nowrap="nowrap">Detalle de otro predetalle</td></tr></tbody></table><table id="Fila3" style="width: 19cm; border-bottom: 1px solid black; font-size: 11px; font-family: verdana;" cellpadding="1" cellspacing="0"><tbody><tr><td></td></tr></tbody></table><br><br><br><table id="Pie" style="width: 19cm; font-size: 11px; font-family: verdana;" border="0" bordercolor="gainsboro" cellpadding="1" cellspacing="0" height="70"><tbody><tr><td width="20%" align="center" height="10%" nowrap="nowrap"> </td><td width="20%" align="center" height="10%" nowrap="nowrap"> </td></tr></tbody></table><table width="100%"><tbody><tr><td align="center"></td></tr></tbody></table></div> el boton Imprimir llama a la funcion function imprimir() { $(function() { var texto = ""; texto = texto + '<div id="otroDiv"></div>'; document.getElementById('divtestImpresion').innerH TML = texto; //incluso puedes enviarle a cargar otros datos al mismo DivImpresion $.jPrintArea('#divtestImpresion'); }); } a este punto ya se envia el divImpresion a jPrintArea() que es el que se encarga de crear el Iframe, mandar a imprimir y lanza su bendito alert. //pluggin jprint.js contenido del jprint jQuery.jPrintArea = function(el) { var iframe = document.createElement('IFRAME'); var doc = null; $(iframe).attr('style', 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;'); $(iframe).attr('id', 'ifr'); //agregado para pruebas $(iframe).attr('name', 'ifr'); //agregrado para pruebas document.body.appendChild(iframe); doc = iframe.contentWindow.document; //alert("asdasd"); doc.write('<script> function vaina(){document.getElementById("otroDiv").innerHT ML = "contenido del otroDiv"; window.print(); } </script>'); //para prueba de que se //carga tambien en el otro div que se envio desde la pagina padre doc.write($(el).html()); doc.close(); //ejecutando para prueba la funcion vaina que se crea en la pagina del Iframe con agreado al otroDIV y una funcion print() iframe.contentWindow.focus(); valor1 = window.frames['ifr']; valor1.vaina(); //iframe.contentWindow.print(); //alert('Printing...'); } espero que mi explicacion se entendible |
| |||
![]() Creo que ya identifique el problema en este caso, al parecer todo es por que estoy enviando un Tag Imagen(el Logo), si se lo quito y solo envio datos texto, lineas Imprime bien!...por que la imagen causa este efecto?...no lo se, gracias |
| ||||
Respuesta: Imprimir un Iframe desde Pagina Padre las imágenes tardan tiempo en cargar, lo mejor es que dumpees en el iframe una estructura de html con body y coloques en el evento onload la llamada a imprimir. PD: y trata de organizar el código, nadie estaría dispuesto a leer es así ![]()
__________________ ¡Por favor!: usa el highlight para mostrar código El que busca, encuentra... |
| |||
Respuesta: Imprimir un Iframe desde Pagina Padre Disculpa maycol por el codigo si te refieres al contenido del div era para copiar y pegar en el body de una pagina x y ver la estructura....nada mas, y si, al parecer es bastante confunso |
| |||
![]() Gracias maycol por tu sugerencia, y si tienes mucha razon...ya solucione este caso a partir de que dijiste que las imagenes tardan más (que el texto) en cargarse...entonces me ingenie que espere a que cargue bien el iframe y luego darle el foco e imprimir, paso seguido removerlo y todo bien, gracias |
| ||||
Respuesta: Imprimir un Iframe desde Pagina Padre bien, perfecto que lo solucionaras; te digo lo del código porque muchos en el foro al ver eso, descartan la intención de ayudarte, mientras más corto y detallado sea el post, mejor. también puedes incluir código, pero trata de organizarlo y tabularlo, y usa de preferencia la herramienta del foro highlight ubicada en una lista del editor, con eso se resalta el código según el lenguaje ![]()
Código Javascript:
Ver original
__________________ ¡Por favor!: usa el highlight para mostrar código El que busca, encuentra... |
Etiquetas: |