Aqui está o que eu faço ....
Permite que a janela seja impressa e fechada com base em um parâmetro de consulta.
Requer jQuery. Pode ser feito em _Layout ou página mestra para trabalhar com todas as páginas.
A ideia é passar um parâmetro na URL informando a página para imprimir e fechar, se o parâmetro estiver definido, o evento jQuery “pronto” imprimirá a janela e, quando a página estiver totalmente carregada (após a impressão), o “onload” é chamado, o que fecha a janela. Todas essas etapas aparentemente extras são esperar que a janela seja impressa antes de se fechar.
No evento html body add e onload que chama printAndCloseOnLoad (). Neste exemplo, estamos usando cshtm, você também pode usar javascript para obter parâmetros.
<body onload="sccPrintAndCloseOnLoad('@Request.QueryString["PrintAndClose"]');">
No javascript adicione a função.
function printAndCloseOnLoad(printAndClose) {
if (printAndClose) {
window.open('', '_self', ''); window.close();
}
}
E evento pronto para jQuery.
$(document).ready(function () {
if (window.location.search.indexOf("PrintAndClose=") > 0)
print();
});
Agora, ao abrir qualquer URL, basta anexar o parâmetro de string de consulta “PrintAndClose = true” e ele será impresso e fechado.