Como Imprimir conteúdo de uma div via Jquery

Todos projetos que trabalhei até hoje quando havia necessidade de imprimir os dados da tela eu abria um popup e efetuava novamente a consulta.

Procurando uma solução mais pratica e melhor encontrei no github do usuário erikzaadi um plugin em jquery que imprime a div sem abrir nada.

Pagina do Plugin:
jQuery.printElement

//Inclua na sua pagina o jquery e o js do plugin
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.printElement.js" type="text/javascript"></script>

<script>
//função que irá imprimir
function PrintDiv(div)
{
	$('#'+div).printElement();
}
</script>

<html>
<body>
Texto que não irá imprimir!
<br>
<div id='imprimir'>Imprimir apenas aqui</div>
<br>
<a href='#' onclick="PrintDiv('imprimir')>Imprimir</a>
</body>
</html>

Ao clicar no link Imprimir, irá aparecer a tela de impressão clicar em ok e veja o resultado.

14 Comments

  1. Estou tentando implementar esse script aqui…
    deu certo pra imprimir tudo certinho, mas ele não consegue de forma alguma interpletar nenhum tipo de stylo ou formatação da div em css…

    tem alguma idéia de como resolver isso?

    vlw abrass

  2. Utilizei o plugin, mas me deparei com alguns problemas:
    – Ele não interpreta os estilos CSS, a menos que você os declare nos próprios elementos html;
    – Não consegui fazer ele imprimir em modo paisagem (landscape);
    – Não consegui retirar informações de cabeçalho e rodapé padrões do navegador;
    – Se eu coloco um fundo azul em alguma DIV com a fonte branca, por exemplo, ele não interpreta esses estilos.

    Alguém já se deparou com esses problemas? Conseguiu resolver? Como?

    Grato.

  3. Olá Pedro. Ja tentei o impossível para imprimir o conteúdo de toda a div, considerando a barra de rolagem e não consigo. Com o seu exemplo ocorreu o mesmo. Imprimiu a div, mas apenas o que aparece na área da div e não o conteúdo todo até o fim da barra de rolagem. tenti um @media print com overflow:visible e mesmo assim não da certo. Sabe de algum jeito de concertar isso ?

    Att. Renê Marcel

Leave a Reply

Seu e-mail não será publicado.


*