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.
Essa porcaria não funciona mais!!
opa, fiz um teste e funciona sim.
Incompatível com a ultima versão da JQuery 🙁
OBS. Na linha 19 desse código falta uma ” (aspas), para fechar o comando onclick!
Opa tive os mesmos poblemas que o Fernando e mais um nãi funciona no internet explorer.
Mas valeu a intenção.
Abs
Obrigado! Me ajudou muito!! gostei do site!
Valeu muito obrigado me ajudou bastante !
Obrigado irmão eu consegui, e me foi muito útil. Pois eu precisava imprimir boletos, mas não podia deixar o header da página aparecer. vlw!!
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
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.
Renê, o script apresentado imprime todo conteudo dentro da div:
Se tiver um conteudo gigante e tiver rolagem vai imprimir tudo de qualquer forma.
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
Teoricamente sim!
funciona com flash?