Inquiridor
ADICIONAR UM ReportViewer no Itextsharp

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();
}
}
- Movido AndreAlvesLimaModerator terça-feira, 5 de junho de 2012 10:26 (De:.NET Development - Geral)
Todas as Respostas
-
Prezado(a),
Estou migrando seu post para o fórum de Geracao de Relatorios.
Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
Obrigado.André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima