ASP.NET - Abrir e imprimir un PDF en el Cliente con C#.

   
Vista:

Abrir e imprimir un PDF en el Cliente con C#.

Publicado por Daniel (1 intervención) el 28/11/2008 10:57:18
Hola, tengo un problema, quiero abrir un PDF e imprimirlo en la impresora predeterminada del cliente, pero no sé cómo hacerlo usando c# (osea, desde el servidor, sin usar código de cliente).
Mi código es el siguiente:

string sRutaPdf = Request.QueryString["rutaPdf"].ToString().Trim();
Response.Clear();
//Abrimos primero el pdf
Response.ContentType = "Application/pdf";
//Con inline -> Abre el pdf en el explorador sin preguntar al cliente si quiere o no abrirlo o guardarlo en disco
//Con attachment -> Funciona como un archivo adjunto,se pregunta al cliente si quiere abrir el archivo o prefiere guardarlo en disco.
Response.AddHeader("Content-disposition", "inline; filename=" + sRutaPdf );
Response.TransmitFile(sRutaPdf);
Response.Flush();

Con esto consigo abrir el PDF, pero mi problema es que después de abrirlo no consigo imprimirlo, el código que tengo insertado después del Response.Flush(); es el siguiente:

Response.Clear();
Response.Write("<script>window.print();</script>");
Response.Flush();

Estas tres últimas instrucciones no hacen nada, parece que después de abrir el pdf ya no me acepta que le meta scripts.

Alguien tiene alguna idea?

Gracias por anticipado.
Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abrir e imprimir un PDF en el Cliente con C#.

Publicado por ANTONIO (105 intervenciones) el 29/11/2008 18:43:17
Aunque esta hecho en vb no creo que tengas problemas en pasarlo a c#
a ver si te sirve por lo menos para inspirarte y dar con tu solucion:

Tener en cuenta de importar la referencia microsoft ado 2.8

Response.Buffer = True

Const adTypeBinary = 1

Dim strFileName

Dim strFilePath

strFileName = TextBox11.Text

MsgBox(strFileName)

strFilePath = Server.MapPath("PDF") & "" & strFileName

Dim objStream As New ADODB.Stream

objStream.Type = adTypeBinary

objStream.Open()

objStream.LoadFromFile(strFilePath)

Response.AddHeader("Content-Disposition", "Attachment; filename=" & strFileName)

Response.ContentType = "application/pdf"

Response.BinaryWrite(objStream.Read)

objStream.Close()

objStream = Nothing

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar