Buenas tardes
Para cerrar la semana envío una pregunta de un tema que me viene ganando por
goleada sin poderlo resolver:
Tengo que imprimir un pdf en la impresora del cliente web, pero sin
mostrarlo antes por pantalla (preview).
El pdf lo genero con Crystal Reports y lo muestro por pantalla lo más bien.
Ahora necesito que en lugar de mostrarlo por pantalla salga impreso
directamente en la impresora del usuario (cliente web).
Estoy trabajando con ASP.Net MVC.
La idea es hacer un llamado al servidor con AJAX para que me devuelva el pdf
que necesito imprimir.
Probé con AJAX, recibiendo el pdf desde un ActionResult y traté de meterlo
en una ventana para luego imprimirlo, pero sin éxito.
Este es el código (jQuery) del lado del cliente:
$.get("/Cobranzas/EmisionRecibo", { "vM23_ID": vM23_ID }, function
(data) {
var printWindow = window.open('', '',
'left=50000,top=50000,width=0,height=0');
printWindow.document.write(data);
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
});
Creo que el problema lo tengo en lo que devuelvo del lado del servidor. Esto
me trae un FileStreamResult:
public virtual ActionResult EmisionRecibo(string vM23_ID)
{
string msj = string.Empty;
try
{
using (ViaClub.CrystallReport cr = new
ViaClub.CrystallReport())
{
string sPath =
Server.MapPath("../Reportes/ReciboCobranza.rpt");
cr.AgregarParametro("@M23_ID", vM23_ID);
return cr.BuildReport(sPath);
}
}
catch (Exception ex)
{
}
return null;
}
¿alguien tiene experiencia en el tema?
¿alguna idea?
Muchas gracias por cualquier ayuda!
Saludos
Pablo E. Navarro
Vía Informática (0230) 466-4859
<http://www.viainfo.com.ar/> www.viainfo.com.ar