none
Descargar PDF y redirigir página RRS feed

  • Pregunta

  • Buenas.

    Actualmente mi aplicación me crea un documento pdf y lo descarga desde el navegador, he intenado hacer que despues de esto me redirija a otra página pero no consigo hacerlo con Response.Redirect, o me descarga el pdf o me envia a la página. Que puedo hacer para solucionarlo? Gracias!

    Response.ContentType = "application/pdf"
    Response.AddHeader("content-disposition", "attachment;filename=Acta.pdf")
    Response.Cache.SetCacheability(HttpCacheability.NoCache)
    
    Dim doc As New Document(PageSize.A4, 50.0F, 50.0F, 15.0F, 80.0F)
    Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(doc, Response.OutputStream)
    Dim ev As New EventosActaNormal(mostrarProfessor)
    pdfWrite.PageEvent = ev
    
    doc.Open()
    Dim tAlumn As PdfPTable = getTablaAlumnos()
    doc.Add(tAlumn)
    
    doc.Close()
    
    Response.Write(doc)
    Response.End()
    'Response.Redirect("Aviso")
    viernes, 17 de abril de 2015 10:28

Respuestas

  • hola

    es que la descarga y ejecucion de una redireccion no puedes hacer en una misma operacion

    la descarga deberias lanzarla en un popup y enviar el window.location.href='url' para redireccionar

    string urlDownload = "Download.aspx?field1=" + id;

    string urlRedirecion = "<url>"; string script = @"window.open('{0}',''); window.location.href='{1}';"; script = string.Format(script, urlDownload, urlRedireccion); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "popup", script, true);


    a donde apunto es que ese codigo que descarga el pdf lo debes poner en otra pagina separada asi abres la ejecucion en dos response, uno de la pagina de download que lanzas en un popup y esto te permite realizar al redireccion con location.href

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 17 de abril de 2015 11:38

Todas las respuestas

  • Hola, lo que podrías hacer es invocar un window.open de javascritpt en el cliente con la dirección del handler que te devuelva el PDF y después hacer el redirect.

    Salu2

    viernes, 17 de abril de 2015 11:24
  • Hola,

    Otra solución es hacerlo al revés, rediriges a otra pagina y desde esa pagina descargas el PDF, le podrías pasar en el querystring la ruta o un id de documento.

    Response.Redirect("Aviso.aspx?descarga_doc=1");

    Saludos,

    viernes, 17 de abril de 2015 11:32
  • hola

    es que la descarga y ejecucion de una redireccion no puedes hacer en una misma operacion

    la descarga deberias lanzarla en un popup y enviar el window.location.href='url' para redireccionar

    string urlDownload = "Download.aspx?field1=" + id;

    string urlRedirecion = "<url>"; string script = @"window.open('{0}',''); window.location.href='{1}';"; script = string.Format(script, urlDownload, urlRedireccion); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "popup", script, true);


    a donde apunto es que ese codigo que descarga el pdf lo debes poner en otra pagina separada asi abres la ejecucion en dos response, uno de la pagina de download que lanzas en un popup y esto te permite realizar al redireccion con location.href

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 17 de abril de 2015 11:38
  • Buenas Leandro, gracias por tu respuesta.

    No se como hacer lo que me indicas, en mi caso lo que quiero descargar es el objeto "doc" de clase "itextsharp.text.document" y no se como indicarle eso en la url de descarga.

    Un saludo.


    miércoles, 22 de abril de 2015 8:06