none
Exportar html a PDF en Sharepoint RRS feed

  • Pregunta

  • Hola a todos, estoy intentando hacer lo del titulo, osea exportar parte de una pagina contenida en un panel en Sharepoint para lo que en una webpart tengo el siguiente codigo y utilizo la libreria iTextSharp:

     

               Document document = new Document();

                       //writer - have our own path!!! and see you have write permissions...

                    MemoryStream str = new MemoryStream();

                    PdfWriter.GetInstance(document, str);

                    document.Open();

                    //html -text - kan be from database or editor too

                    StringWriter htmlText = new StringWriter();

                    System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(htmlText);

                    pnlImpresion.RenderControl(htw);

                    string stringHTML = htmlText.ToString();

     

                    //make an arraylist ....with STRINGREADER since its no IO reading file...

                    List<IElement> htmlarraylist = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StringReader(stringHTML), null);

                    //add the collection to the document

                    for (int k = 0; k < htmlarraylist.Count; k++)

                    {

                        document.Add((IElement)htmlarraylist[k]);

                    }

     

                    document.Add(new Paragraph("And the same with indentation...."));

     

                    // or add the collection to an paragraph 

                    // if you add it to an existing non emtpy paragraph it will insert it from

                    //the point youwrite -

                    Paragraph mypara = new Paragraph();//make an emtphy paragraph as "holder"

                    mypara.IndentationLeft = 36;

                    mypara.InsertRange(0, htmlarraylist);

                    document.Add(mypara);

                    document.Close();

     

     

    Y me da este error  [System.Net.WebException] = {"Acceso denegado a la ruta de acceso 'c:\\'."}

    en la siguiente linea "List<IElement> htmlarraylist = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StringReader(stringHTML), null);"

    Alguien me puede ayudar? este código en asp.net convencional funciona bien.

    Muchas gracias


    • Editado dotAr_7 miércoles, 26 de octubre de 2011 21:23
    miércoles, 26 de octubre de 2011 21:21

Todas las respuestas

  • Hola,

    Lo que no veo en tu código es en que momento está intentado acceder a una ruta del sistema de archivos...¿esa ruta sería de servidor o de cliente? Lo que puedes probar es a meter el código en un bloque de elevación de privilegios para ver si por lo menos te quita el error de acceso denegado.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    jueves, 27 de octubre de 2011 5:55
  • Hola Juan Carlos, 

    Te comento que no estoy intentando acceder a ninguna ruta, puse el código en un bloque de elevación de privilegios y el error cambio, ahora dice que la cadena no tiene el formato correcto, por lo que hice algunas pruebas y aparentemente el metodo ParseToList de la librería itextSharp no interpreta controles como un label o un input ya que si capturo el string que guarda el html y saco estos controles funciona bien.

    Seguramente este tema ya no compete a esta sección del foro así que agradezco por la ayuda, de todas formas si a alguien pasa por acá y trabajo en algo parecido va a ser vienvenida su opinión je.


    Diego Mazzoni
    jueves, 27 de octubre de 2011 19:30