none
encabezado y pie de pagina con itextsharp RRS feed

  • Pregunta

  • hola :

    tengo este codigo con el cual a partir de una consulta sql genero un pdf :

    string path = Server.MapPath("PDFFiles");
    string filename = path + "/Doc1.pdf";
    Document document = new Document(PageSize.A4, 20f, 20f, 20f, 20f);
    HeaderFooter lofooter = new HeaderFooter(new Phrase("Numero de pagina: "), true);
    document.Footer = lofooter;
    HeaderFooter loHeader = new HeaderFooter(new Phrase("Fecha del documento: " +                     DateTime.Now.ToString("dd/MM/yyyy")), false);
    document.Header = loHeader;
    Font lofuente = new Font();
    lofuente.Size = 10;


    PdfWriter.GetInstance(document, new FileStream(filename, FileMode.Create));
    PdfPTable table = new PdfPTable(3);
    table.TotalWidth = 400f;
    table.LockedWidth = true;
    float[] widths = new float[] { 2f, 4f, 4f }; // ancho de columnas de la tabla
    table.SetWidths(widths);
                table.HorizontalAlignment = 30;
    table.SpacingBefore = 30f;
                table.SpacingAfter = 30f;


    PdfPCell cell = new PdfPCell(new Phrase("Header spanning 3 columns", lofuente));
    cell.Colspan = 3;
    cell.HorizontalAlignment = 1;
    iTextSharp.text.Image loImage = iTextSharp.text.Image.GetInstance("C:\\disco_datos\\_vstudio-comunity\\admtaxis\\admtaxis\\admtaxis\\imagenes\\taxi.jpg");
    loImage.ScalePercent(50); //escala en la que quiero ver la imahgen 

    Chunk loChunk = new Chunk(loImage, 430, 0);  // ubicacion de la imagen ( coordenadas x e y )
    Chunk loChunKheader2  = new Chunk(loImage, 430, 0);  // ubicacion de la imagen ( coordenadas x e y )


    SqlConnection conexion = null;
    SqlCommand cmd = null;

    try
    {
    conexion = ConectarConBaseDeDatos();
    }

    catch (SqlException ex)
    {
    throw new Exception("Error en conexion: " + ex.Message);
    }

    if (document.IsOpen() == false)
    {
    document.Open();
    }

    Paragraph title = new Paragraph(string.Format("LISTADO DE CHOFERES"), new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL  , 20, iTextSharp.text.Font.BOLD));
    Paragraph header1 = new Paragraph(string.Format("CODIGO"), new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 10, iTextSharp.text.Font.BOLD));
    Paragraph lFechaHora = new Paragraph();
    Paragraph header2 = new Paragraph(string.Format("APELLIDO"), new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 10, iTextSharp.text.Font.BOLD));
    Paragraph header3 = new Paragraph(string.Format("NOMBRE"), new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 10, iTextSharp.text.Font.BOLD));

    PdfPCell clNombre = new PdfPCell(new Phrase(header1));
    clNombre.BorderWidth = 0.5f;
    // clNombre.BorderWidthBottom = 0.75f;
    clNombre.PaddingLeft = 20;
    clNombre.PaddingBottom = 5;
    clNombre.BackgroundColor = iTextSharp.text.Color.YELLOW;


    PdfPCell clApellido = new PdfPCell(new Phrase(header2));
    clApellido.BorderWidth = 0.5f;
    // clApellido.BorderWidthBottom = 0.75f;
    clApellido.PaddingLeft = 50;
    clApellido.BackgroundColor = iTextSharp.text.Color.YELLOW;

    PdfPCell clPais = new PdfPCell(new Phrase(header3));
    clPais.BorderWidth = 0.5f;
    // clPais.BorderWidthBottom = 0.75f;
    clPais.PaddingLeft = 60;
    clPais.BackgroundColor = iTextSharp.text.Color.YELLOW;



    title.Alignment = Element.ALIGN_CENTER;
    document.Add(title);
    document.Add(loChunk);
    cmd = new SqlCommand("select idchofer, apel , nom from Choferes ", conexion);

    cmd.CommandType = CommandType.Text;
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = cmd;

    table.AddCell(clNombre);
    table.AddCell(clApellido);
    table.AddCell(clPais);

    try
    {
    conexion.Open();
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
    while (rdr.Read())
    {

    table.AddCell(new Phrase(rdr[0].ToString(), lofuente));
    table.AddCell(new Phrase(rdr[1].ToString(), lofuente));
    table.AddCell(new Phrase(rdr[2].ToString(), lofuente));
    }
    }
    }
    catch (Exception ex)
    {
    Response.Write(ex.Message);
    }
    document.Add(cell);

    document.Add(table);
    lFechaHora.Add(DateTime.Now.ToString().Replace('-', '/'));
    lFechaHora.Alignment = Element.ALIGN_RIGHT;
    document.Add(lFechaHora) ;
    document.Close();

    ShowPdf(filename);

    }

    public void ShowPdf(string filename)

    {

    //Clears all content output from Buffer Stream

    Response.ClearContent();

    //Clears all headers from Buffer Stream

    Response.ClearHeaders();

    //Adds an HTTP header to the output stream

    Response.AddHeader("Content-Disposition", "inline;filename=" + filename);

    //Gets or Sets the HTTP MIME type of the output stream

    Response.ContentType = "application/pdf";

    //Writes the content of the specified file directory to an HTTP response output stream as a file block

    Response.WriteFile(filename);

    //sends all currently buffered output to the client

    Response.Flush();

    //Clears all content output from Buffer Stream

    Response.Clear();

    }  
    }

    el unico problema que estoy teniendo es que no me imprime ni el encabezado ni el pie de pagina ( las definiciones de dichos objetos comienzan en la linea 4 del codigo que puse ) . gracias 

    miércoles, 24 de mayo de 2017 1:24

Respuestas

  • Hola dzuperman,

    Gracias por visitar los foros, comentarte que este thread no ha tenido, actividad por un largo tiempo, por lo cual preguntarte
     ¿Haz podido resolver tu consulta?, de ser así sería de gran ayuda para futuros usuarios pudieras compartirnos tu solución.

    Saludos
    Joyce

    __________________________________________________________________________________________
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, hace que sea más fácil para los otros visitantes encontrar la solución  más tarde. Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal  cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 16 de junio de 2017 17:58
    Moderador