Imprimir el contenido de un DIV

Resuelto usertest asked hace 14 años • 31 respuestas

¿Cuál es la mejor manera de imprimir el contenido de un DIV?

usertest avatar Feb 13 '10 04:02 usertest
Aceptado

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;
}
Bill Paetzke avatar Feb 12 '2010 22:02 Bill Paetzke

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;
    }
}
BC. avatar Aug 23 '2011 20:08 BC.

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 printElementcomplemento.

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!

Erik avatar Sep 26 '2010 14:09 Erik