ASP.NET - Agregar numeración de pagina en iTextsharp con stringbulder

   
Vista:

Agregar numeración de pagina en iTextsharp con stringbulder

Publicado por abner (2 intervenciones) el 22/09/2015 16:42:30
Lo que busco es agregar dinamicamente el numero de página antes de generar el documento pdf por iTextsharp, los datos los traigo mediante una consulta en sql y lo almaceno en un stringbuilder.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
protected void GeneraReporte_Click(object sender, EventArgs e)
    {
        //RUTAS DE LAS IMAGENES
        var UAT = Server.MapPath(ResolveUrl("~/Includes/Images/Reportes/logoUAT.png"));
        var logoCentro = Server.MapPath(ResolveUrl("~/Includes/Images/Reportes/firma_admon.jpg"));
        var FCAV = Server.MapPath(ResolveUrl("~/Includes/Images/Reportes/fcav.jpg"));
        //valores
        int altas = Convert.ToInt32(RadioButtonList1.SelectedValue.ToString());
        int periodo = Convert.ToInt32(ddlperiodo.SelectedValue.ToString());
        int deptop = Convert.ToInt32(ddldepto.SelectedValue.ToString());
        int tipo = Convert.ToInt32(ddltipo.SelectedValue.ToString());
        using (SqlConnection cone = conexion.conectar())
        {
            using (SqlCommand comand = new SqlCommand("REPORTEALTASBAJAS", cone))
            {
                comand.CommandType = CommandType.StoredProcedure;
                comand.Parameters.Add("@VALOR", SqlDbType.Int).Value = altas;
                comand.Parameters.Add("@PERIODO", SqlDbType.Int).Value = periodo;
                comand.Parameters.Add("@DEPTO", SqlDbType.Int).Value = deptop;
                comand.Parameters.Add("@TIPO", SqlDbType.Int).Value = tipo;
                cone.Open();
                using (SqlDataReader dr = comand.ExecuteReader())
                {
                    if (dr.HasRows)
                    {//if
                        DataTable dt = new DataTable();
                        dt.Columns.AddRange(new DataColumn[13] {
                            new DataColumn("USUARIO"),
                            new DataColumn("DEPARTAMENTO"),
                            new DataColumn("ARTICULO", typeof(string)),
                            new DataColumn("DESCRIPCIÓN", typeof(string)),
                            new DataColumn("COLOR"),
                            new DataColumn("MARCA", typeof(string)),
                            new DataColumn("MODELO", typeof(string)),
                            new DataColumn("TAMAÑO"),
                            new DataColumn("NUM. DE SERIE"),
                            new DataColumn("NUM. DE INVENTARIO"),
                            new DataColumn("NUM. DE FACULTAD"),
                            new DataColumn("OBSERVACIONES"),
                            new DataColumn("ESTADO"),
                            });
                        dt.Load(dr); //carga el grid con los datos de sql
                        using (StringWriter sw = new StringWriter())
                        {
                            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                            {
                                StringBuilder sb = new StringBuilder();
                                sb.Append("<br/>");
                                //HEADER DEL DOCUMENTO
                                sb.Append("<table style='font-size: 8px;' align='center' width='95%' cellspacing='0' cellpadding='2'>");
                                sb.Append("<tr>");
                                sb.Append("<td align='left'>");
                                sb.Append(@"<img height='50x' src=" + UAT + " />");
                                sb.Append("</td>");
                                sb.Append("<td align='center' colspan = '1'>");
                                sb.Append(@"<img height='50x' align='center' src=" + logoCentro + " />");
                                sb.Append("</td>");
                                sb.Append("<td colspan='1' align='right'>");
                                sb.Append(@"<img height='50x' align='right' src=" + FCAV + " />");
                                sb.Append("<br/></td></tr>");
                                sb.Append("<tr ><td><br/></td><td><br/></td><td><br/></td></tr>");
                                sb.Append("<tr><td align='left'><b></b></td><td align='center'><b>");
                                switch (Convert.ToInt32(RadioButtonList1.SelectedValue.ToString()))
                                {
                                    case 1:
                                        sb.Append("REPORTE DE ALTAS");
                                        break;
                                    case 2:
                                        sb.Append("REPORTE DE BAJAS");
                                        break;
                                    case 3:
                                        sb.Append("REPORTE DE ALTAS Y BAJAS");
                                        break;
                                }
                                sb.Append("</b></td><td align='right'><b></b></td></tr>");
                                sb.Append("<tr ><td><br/></td><td><br/></td><td><br/></td></tr>");
                                if (dr.Read())
                                {
                                    if (ddldepto.SelectedItem.Text == "--Todos--")
                                    {
                                    }
                                    else
                                    {
                                        sb.Append("<tr><td align='left''><b>SRIA./COORD: " + dr["NOMBREC"].ToString() + "</b></td>");
                                        if (dr["NOMBRED"] == DBNull.Value)
                                        {
                                            sb.Append("<td align='center'><b></b></td>");
                                        }
                                        else
                                        {
                                            sb.Append("<td align='center'><b>DEPARTAMENTO: " + dr["NOMBRED"].ToString() + "</b></td>");
                                        }
                                        sb.Append("<td align='right'><b>RESPONSABLE: " + dr["NOMBREP"].ToString() + "</b></td></tr>");
                                    }
                                }
                                sb.Append("</table>");
                                sb.Append("<br/>");
                                //SE ITERA POR CADA ARTICULO QUE PERNECIENTE AL RESPONSABLE DEL AREA
                                sb.Append("<table align='center' width='95%' style='' border='1'>");
                                sb.Append("<tr>");
                                foreach (DataColumn column in dt.Columns)
                                {
                                    sb.Append("<th style='font-size:9px;text-align: center;color:#000'>");
                                    sb.Append("<b>");
                                    sb.Append(column.ColumnName);
                                    sb.Append("</b>");
                                    sb.Append("</th>");
                                }
 
                                sb.Append("</tr>");
                                foreach (DataRow row in dt.Rows)
                                {
                                    sb.Append("<tr style='font-size: 8px;'>");
                                    foreach (DataColumn column in dt.Columns)
                                    {
                                        sb.Append("<td width='100%'>");
                                        sb.Append(row[column]);
                                        sb.Append("</td>");
                                    }
                                    sb.Append("</tr>");
                                }
                                sb.Append("</table>");
                                sb.Append("<br/>");
                                //FOOTER DEL DOCUMENTO
                                sb.Append("<br/>");
                                sb.Append("<table align='center' width='95%'>");
                                sb.Append("<tr><td align='left'>SECRETARIA ADMINISTRATIVA:_________________________________</td><td align='left'>CONTRALORIA INTERNA:______________________________</td></tr>");
 
                                if (dr["NOMBRED"] == DBNull.Value)
                                {
                                    sb.Append("<tr></tr><tr></tr>");
                                    sb.Append("<tr><td align='left'>ENCARGADO DE SRIA./COORD:_________________________________</td></tr>");
                                }
                                else if (dr["NOMBRED"] != DBNull.Value) //NOT WORK
                                {
                                    sb.Append("<tr></tr><tr></tr>");
                                    sb.Append("<tr><td align='left'>ENCARGADO DE SRIA./COORD:_________________________________</td><td align='left'>ENCARGADO DE DEPARTAMENTO:______________________________</td></tr>");
                                }
 
                                sb.Append("</table>");
 
                                //EXPORTA EL STRING COMO PDF
                                StringReader sr = new StringReader(sb.ToString());
                                Document pdfDoc = new Document(PageSize.LEGAL.Rotate(), 10f, 10f, 10f, 0f);
                                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                                PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                                pdfDoc.Open();
                                htmlparser.Parse(sr);
                                pdfDoc.Close();
                                Response.ContentType = "application/pdf";
                                Response.AddHeader("content-disposition", "attachment;filename=Reporte.pdf");
                                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                                Response.Write(pdfDoc);
                                Response.End();
                            }
                        }
                    }
                    else
                    {
                        notif.Visible = true;
                    }
                }
            }
        }
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder