none
Dar formato a un PDF generado con iTextSharp en c# y asp.net RRS feed

  • Pregunta

  • Tengo el siguiente PDF que genero con iTextSharp:

    introducir la descripción de la imagen aquí

    Pero quiero mover los totales debajo del GridView, el problema es que no se de qué manera poder hacerlo.

    Mi código para generar el PDF:

      private void ExportarPDF()
        {
            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                {
                    GRILLA.RenderControl(hw);
                    StringReader sr = new StringReader(sw.ToString());
                    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
                   
                    PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                    pdfDoc.Open();
                    Font LineBreak = FontFactory.GetFont("Arial", size: 16);
                    iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(@"C:\Users\becarios\source\repos\Alimenta_venta\Alimenta_venta\Image\alimenta1.png");
                    Paragraph parrafo2 = new Paragraph(string.Format("              REPORTE VENTAS"), new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 16));
                    parrafo2.SpacingBefore = 200;
                    parrafo2.SpacingAfter = 0;
                    parrafo2.Alignment = 1; //0-Left, 1 middle,2 Right
                    pdfDoc.Add(parrafo2);
                    pdfDoc.Add(Chunk.NEWLINE);
                    img.SetAbsolutePosition(0, 750);
                    pdfDoc.Add(img);
                    img.ScaleToFit(115f, 50F);
                    var para = new Paragraph(Fecha.Text);
                    para.Alignment = 2;
                    para.Font.Size = 12;
                    pdfDoc.Add(para);
                    pdfDoc.Add(new Paragraph("\n", LineBreak));
                    pdfDoc.Add(new Paragraph(string.Format("Vendedor: " + Label1.Text), new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.COURIER,13 ,iTextSharp.text.Font.BOLD)));
                    pdfDoc.Add(new Paragraph("\n\n", LineBreak));
    
                     var i = new Paragraph("Total de piezas: " + TotPiezas.Text);
                    i.m
                    pdfDoc.Add(new Paragraph("Total de Kilos: " + TotKilos.Text));
                    pdfDoc.Add(new Paragraph("Total de importe: " + TotImporte.Text));
                    pdfDoc.Add(new Paragraph("\n\n", LineBreak));
                    pdfDoc.Add(new Paragraph("\n\n", LineBreak));
                    XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
                    pdfDoc.Close();
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf");
                    Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    Response.Write(pdfDoc);
                    Response.End();
                }
            }
    
        }


    Elizabeth Tapia

    miércoles, 18 de julio de 2018 13:35

Respuestas

Todas las respuestas

  • hola

    Alli veo que usas el render del control

    GRILLA.RenderControl(hw);

    en ese caso deberias agregar un footer al gridview con esa info para que sea renderizado los totales de forma integrada

    Displaying Summary Information in the GridView's Footer (C#)

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Elizabeth X martes, 24 de julio de 2018 14:19
    miércoles, 18 de julio de 2018 16:22
  • Pero el GridView lo muestro en otra página y hace algunas acciones, simplemente muestro un reporte de los datos que se movieron, agregaron, etc. en el pdf. Por eso mi duda es simplemente bajar los totales, esos los tomo desde un TextBox que se generan en la misma página.

    Elizabeth Tapia

    miércoles, 18 de julio de 2018 16:35
  • hola

    >>Por eso mi duda es simplemente bajar los totales

    es que si la tabla se obtiene por medio del render del control grid es alli donde debeb estar los totales

    quizas debas definir un gridview en memoria asignando el datasource del grid que ves en la pagina, pero a este nuevo grid si definirle el footer

    entonces de este grid temporal si obtienes el render que usas en el pdf

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 18 de julio de 2018 17:38