Imprimir el contenido de un DIV
¿Cuál es la mejor manera de imprimir el contenido de un DIV?
Ligeros cambios con respecto a la versión anterior: probado en CHROME
function PrintElem(elem)
{
var mywindow = window.open('', 'PRINT', 'height=400,width=600');
mywindow.document.write('<html><head><title>' + document.title + '</title>');
mywindow.document.write('</head><body >');
mywindow.document.write('<h1>' + document.title + '</h1>');
mywindow.document.write(document.getElementById(elem).innerHTML);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10*/
mywindow.print();
mywindow.close();
return true;
}
Creo que hay una solución mejor. Haga que su div para imprimir cubra todo el documento, pero solo cuando esté impreso:
@media print {
.myDivToPrint {
background-color: white;
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
margin: 0;
padding: 15px;
font-size: 14px;
line-height: 18px;
}
}
Nota: Han pasado más de 13 años desde que se escribió el complemento que se menciona a continuación, como se indica en los comentarios. Ya no funciona debido al cambio de API en jQuery. ¡Siéntete libre de bifurcar y agregar una solicitud de extracción!
Aunque @gabe lo ha dicho , si estás usando jQuery, puedes usar mi printElement
complemento.
Hay una muestra y más información sobre el complemento .
El uso es bastante sencillo, simplemente tome un elemento con un selector jQuery e imprímalo:
$("#myDiv").printElement();
¡Espero que ayude!