public void Relatorio() { try { StringBuilder conteudo = new StringBuilder(); conteudo.Append("<h2> Relatorio de Produtos </h2>"); conteudo.Append($"Relatório gerado em: {DateTime.Now}"); conteudo.Append("<br/><br/>"); ProdutoBusiness business = new ProdutoBusiness(); List <Produto> lista = business.ConsultarProduto(); conteudo.Append("<table border='1' style='width=100%'>"); conteudo.Append("<tr>"); conteudo.Append("<th>Codigo</th>"); conteudo.Append("<th>Nome</th>"); conteudo.Append("<th>Preço</th>"); conteudo.Append("<th>Quantidade</th>"); conteudo.Append("<th>Estoque</th>"); conteudo.Append("</tr>"); foreach (Produto produto in lista) { conteudo.Append("<tr>"); conteudo.Append($"<td>{produto.IdProduto}</td>"); conteudo.Append($"<td>{produto.Nome}</td>"); conteudo.Append($"<td>{produto.Preco}</td>"); conteudo.Append($"<td>{produto.Quantidade}</td>"); conteudo.Append($"<td>{produto.Estoque.Nome}</td>"); conteudo.Append("</tr>"); } conteudo.Append("</table>"); //converter PDF ... byte[] pdf = ReportUtil.GetPdfFile(conteudo.ToString()); //download Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=relatorio.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(pdf); Response.End(); } catch (Exception e) { Debug.WriteLine(e.Message); } }