none
Arir PDF desde C# 2008 en Reader XI RRS feed

  • Pregunta

  • Masters, buenas buenas ....

    Veran tengo un aplicativo en C# 2008 (visual studio 2008) que levanta un pdf en Reader 6.0 y todo bien.

    Ahora me piden que lo levante el Reader XI y no funciona.

    Faltara alguna referencia o algo.

    Fragmento de codigo

           protected void Page_Load(object sender, EventArgs e)
            {
                string strNumeroDocumento = Request.QueryString["Enc"];
                string strDownload = Request.QueryString["download"];

                if (!string.IsNullOrEmpty(strNumeroDocumento))
                {
                    DocumentoPresenter mDocumento = new DocumentoPresenter(null);
                    byte[] bytesDocumento = mDocumento.ObtenerDocumentoPdfDos(strNumeroDocumento);
                    if (bytesDocumento != null)
                    {
                        string strDocumentoBase64 = Convert.ToBase64String(bytesDocumento);
                        string strContentDispositionType = string.Empty;
                        if (strDownload == Constantes.caracterNumeroUno)
                        {
                            strContentDispositionType = Constantes.ContentDispositionAttachment + Constantes.FileNamePDF;
                        }
                        else
                        {
                            strContentDispositionType = Constantes.ContentDispositionInLine + Constantes.FileNamePDF;
                        }

                        CargarDocumento(strDocumentoBase64, strContentDispositionType);
                    }
                    else
                    {
                        string strErrorHTML = "<html>";
                        strErrorHTML += "<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0' rightmargin='0' >";
                        strErrorHTML += "<center>";
                        strErrorHTML += "<p><h4>Si tiene dificultad para visualizar el documento, <a href = \"{0}{1}&download=1\">Presione AQU&Iacute</a></h4></p>";
                        strErrorHTML += "</center>";
                        strErrorHTML += "</body>";
                        strErrorHTML += "</html>";
                        strErrorHTML = string.Format(strErrorHTML, "VerPDF.aspx?Enc=", strNumeroDocumento);
                        Response.Clear();
                        Response.Write(strErrorHTML);
                        Response.End();
                    }
                }
            }

            private void CargarDocumento(string strDocumentoBase64, string strContentDispositionType)
            {
                Response.Clear();
                Response.ClearHeaders();
                Response.ClearContent();
                Response.Buffer = true;
                Response.ContentType = Constantes.ContentTypePDF;
                Response.AddHeader(Constantes.ContentDisposition, strContentDispositionType);
                Response.BinaryWrite(Convert.FromBase64String(strDocumentoBase64));
                Response.Flush();
                Response.End();
            }

    Quedo atentisimo a sus comentarios.

    Saludos

    Netzio


    netZio

    miércoles, 20 de abril de 2016 15:45

Respuestas

  • Eso no es algo que usted pueda controlar.  Lo que usted hace desde el servidor IIS es simplemente informarle al explorador web que está solicitando el documento que es un documento PDF (con el MIME type) y que debe forzar la obtención como una descarga.  Es lo más que puede hacer desde el servidor IIS.  Lo que decida hacer el explorador web más allá de eso está fuera de sus manos.

    Ahora bien, en términos generales un explorador web decide qué programa iniciar basándose en la extensión del archivo.  Eso sí, el comportamiento de los exploradores modernos ha cambiado un poco y ahora deciden mostrar el documento en el explorador directamente.  Nuevamente, esto es decisión del explorador web.

    ¿No quiere que el documento abra en Reader 6?  Desinstale Reader 6 de la PC cliente e instale Reader XI.  De esta manera Reader XI es la única posibilidad.  ¿O desea agregar dolores de cabeza?  Trate redireccionando la extensión PDF a la versión específica de Reader XI.  No soy experto en eso pero me parece que Adobe Reader es una aplicación ActiveX, así que si no sabe ActiveX le costará bastante.  ¿Puede hacerse esto desde el servidor web?  Para nada.  Eso es trabajo que debe hacer una aplicación tipo instalador que corra en el cliente.  La puede proveer usted como descarga, pero imagino que estamos hablando de una compañía y una intranet, así que déjele ese trabajo a los distribuidores de software de la compañía.


    Jose R. MCP
    Code Samples

    • Marcado como respuesta Netzio jueves, 21 de abril de 2016 15:54
    jueves, 21 de abril de 2016 14:12
    Moderador