En este video vamos aprender cómo crear y descargar
un archivo PDF que obtiene información desde una Base de Datos en SQL Server
mediante un Procedimiento Almacenado, utilizando la dll iTextSharp descargada
del Nuget Package instalada en nuestro Proyecto de ASP.NET C#
Conocimientos Previos:
- Conexión a Base de Datos SQL Server desde ASP.NET C# con Web.config
- Como crear un Procedure con SELECT
Secciones importantes de código
Default.aspx
<asp:Button ID="btnGenerarPDF" Text="Descargar PDF" runat="server" OnClick="btnGenerarPDF_Click" />
Default.cs
Librerias importantes:
using iTextSharp.text;
using iTextSharp.text.pdf;
Métodos:
protected void btnGenerarPDF_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, HttpContext.Current.Response.OutputStream);
dt = dtAlumno();
if (dt.Rows.Count>0)
{
document.Open();
Font fontTitle = FontFactory.GetFont(FontFactory.COURIER_BOLD, 25);
Font font9 = FontFactory.GetFont(FontFactory.TIMES, 9);
PdfPTable table = new PdfPTable(dt.Columns.Count);
document.Add(new Paragraph(20, "Reporte de Alumnos 2020", fontTitle));
document.Add(new Chunk("\n"));
float[] widths = new float[dt.Columns.Count];
for (int i = 0; i < dt.Columns.Count; i++)
widths[i] = 4f;
table.SetWidths(widths);
table.WidthPercentage = 90;
PdfPCell cell = new PdfPCell(new Phrase("columns"));
cell.Colspan = dt.Columns.Count;
foreach (DataColumn c in dt.Columns)
{
table.AddCell(new Phrase(c.ColumnName, font9));
}
foreach (DataRow r in dt.Rows)
{
if (dt.Rows.Count > 0)
{
for (int h = 0; h < dt.Columns.Count; h++)
{
table.AddCell(new Phrase(r[h].ToString(), font9));
}
}
}
document.Add(table);
}
document.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=AlumnosActuales2020" + ".pdf");
HttpContext.Current.Response.Write(document);
Response.Flush();
Response.End();
}
Recuperación de Datos desde SQL Server mediante un Procedimiento Almacenado:
public DataTable dtAlumno()
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connDB"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SPSalumnos";
cmd.Connection = conn;
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
da.Dispose();
}
return dt;
}
Buenas tu codigo funciona correctamnte pero al cargar la pagina en iis no me funciona me tira el siguiente error
ResponderEliminarNo se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión 127.0.0.1:2273
desde visual anda perfecto solo me queda solucionar esto desde mi servidor, gracias
Hola pero donde hay informacion para crear el pdf con una encabezado, con una imagen de fondo etc
ResponderEliminar