none
ADICIONAR UM ReportViewer no Itextsharp RRS feed

  • Pergunta

  • Caros,

    Gostaria de adicionar um relatório do ReportViewer no component Itextsharp .

    Peguei um exemplo no link:http://social.msdn.microsoft.com/Forums/pt-BR/504/thread/9ab25e70-30b9-454f-bc29-df2b54f1abdd

    Dá erro no trecho :ArrayList array = HTMLWorker.ParseToList(tempReader, new StyleSheet()); //COM ERRO

    Mensagem:  Não é possível converter implicitamente o tipo System.Collections.Generic.List<iTextSharp.text.IElement> em System.Collections.Arraylist

    Segue código abaixo:

     

    private void Impressao2(DataSet ds)

    {


    DataTable woTable = ds.Tables[0];

    strInstituicao = Convert.ToString(woTable.Rows[0]["ORG_INSTITUICAOGOVERNAMENTAL"]);

    byte[] imageby;


    foreach (DataRow oRow in ds.Tables[0].Rows)

    {

    tipo = Convert.ToString(oRow["ait_tipo"].ToString());

    if (tipo == "M")

    {


    rvPrintPreview.LocalReport.ReportPath = Server.MapPath("~\\ReportViwer\\RelacaoDeAutosManuais.rdlc");


    //Atribui o parametro de texto

    ReportParameter parmTexto = new ReportParameter("parmTexto", Convert.ToString(oRow["texto"].ToString()));

    rvPrintPreview.LocalReport.SetParameters(new ReportParameter[] { parmTexto });


    imageby = (byte[])oRow["Mimg"];


    }

    else

    {

    rvPrintPreview.LocalReport.ReportPath = Server.MapPath("~\\ReportViwer\\RelacaoDeAutosEletronico.rdlc");


    }


    //Atribui parametro instituição ao relatório.

    ReportParameter parmInstituicao = new ReportParameter("parmInstituicao", strInstituicao);

    rvPrintPreview.LocalReport.SetParameters(new ReportParameter[] { parmInstituicao });


    //Atribui parametro imagem principal ao relatório.

    ReportParameter parmImgPrinc = new ReportParameter("parmImgPrinc", "file:///" + Server.MapPath("~\\img\\logoPrinc" + Session["EMP_CODIGOEMPRESA"].ToString() + ".bmp"));

    rvPrintPreview.LocalReport.SetParameters(new ReportParameter[] { parmImgPrinc });


    //Atribui parametro imagem secundária ao relatório.

    ReportParameter parmImgSec = new ReportParameter("parmImgSec", "file:///" + Server.MapPath("~\\img\\logoSec" + Session["EMP_CODIGOEMPRESA"].ToString() + ".bmp"));

    rvPrintPreview.LocalReport.SetParameters(new ReportParameter[] { parmImgSec });



    //definindo o DataSource do relatório

    ReportDataSource myReportDataSource = new ReportDataSource("dsAutos_DataTable1", woTable);

    rvPrintPreview.LocalReport.DataSources.Add(myReportDataSource);


    #region Exporta para pdf

    /*string mimeType = "application/pdf";

    string encoding;*/

    string fileNameExtension;

    /*Warning[] warnings;

    string[] streamids;

    byte[] exportBytes = rvPrintPreview.LocalReport.Render("PDF", null, out mimeType, out encoding, out fileNameExtension, out streamids, out warnings);*/

    HttpContext.Current.Response.Clear();

    HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.pdf", fileNameExtension));

    HttpContext.Current.Response.Charset = string.Empty;

    HttpContext.Current.Response.ContentType = "application/pdf";

    HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;

    EnableViewState = false;



    #endregion


    //Método do Itextsharp

    Document document = new Document();

    PdfWriter pdfWriter = PdfWriter.GetInstance(document, HttpContext.Current.Response.OutputStream);



    //Abre o documento

    document.Open();


    string tempFile = Path.GetTempFileName();


    using (StreamWriter tempwriter = new StreamWriter(tempFile, false))

    {

    tempwriter.Write(true);

    }




    using (StreamReader tempReader = new StreamReader(tempFile))

    {

    ArrayList array = HTMLWorker.ParseToList(tempReader, new StyleSheet()); //COM ERRO



    for (int i = 0; i < array.Count - 1; i++)

    {

    document.Add((IElement)array[i]);

    }


    }

    document.Close();

    pdfWriter.Close();


    File.Delete(tempFile);

    HttpContext.Current.Response.Flush();




    }

    }

    quinta-feira, 15 de março de 2012 20:16

Todas as Respostas