Saltar al contenido

Usando JQuery para abrir una ventana emergente e imprimir

Solución:

Debe poner la función de impresión en su archivo view-details.php y llamarlo una vez que se cargue el archivo, ya sea usando

<body onload="window.print()"> 

o

$(document).ready(function () { 
  window.print(); 
});

¡Entiendo! Encontré una idea aquí

http://www.mail-archive.com/[email protected]/msg18410.html

En este ejemplo, cargaron una ventana emergente en blanco en un objeto, clonaron el contenido del elemento a mostrar y lo agregaron al cuerpo del objeto. Como ya sabía cuál era el contenido de los detalles de la vista (o cualquier página que cargara en la caja de luz), solo tenía que clonar ese contenido y cargarlo en un objeto. Entonces, solo necesitaba imprimir ese objeto. El resultado final se ve así:

$('.printBtn').bind('click',function() {
    var thePopup = window.open( '', "Customer Listing", "menubar=0,location=0,height=700,width=700" );
    $('#popup-content').clone().appendTo( thePopup.document.body );
    thePopup.print();
});

Tenía un pequeño inconveniente en que la hoja de estilo que estaba usando en view-details.php usaba un enlace relativo. Tuve que cambiarlo a un enlace absoluto. La razón es que la ventana no tenía una URL asociada, por lo que no tenía una posición relativa en la que basarse.

Funciona en Firefox. También necesito probarlo en algunos otros navegadores importantes.

No sé qué tan bien funciona esta solución cuando se trata de imágenes, videos u otras soluciones de procesos intensivos. Aunque funciona bastante bien en mi caso, ya que solo estoy cargando tablas y valores de texto.

¡Gracias por el aporte! Me diste algunas ideas de cómo solucionar esto.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *