none
Crear un PDF con un select de una tabla de SQL SERVER RRS feed

  • Pregunta

  • Saludos compañeros

    Estoy programando en C# webforms, usando Itextcharp, SQL Server y PDF

     Mi problema radica en que deseo crear un pdf con informacion de una tabla que tengo en SQL Server.

    Lo que deseo es solo un Select que deseo realizar y pasarlo a un pdf.

    Mi select seria de la siguiente manera:  Select * from Empresa

    y con esto llenar el pdf.

    Mi codigo es el siguiente usando itextcharp, hasta ahi el funciona bien creando el archivo, pero no se como realizar el select:

    public void Reporte()

    { Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

    BaseFont arial = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font f_7_normal = new iTextSharp.text.Font(arial, 7, iTextSharp.text.Font.NORMAL); iTextSharp.text.Font f_9_bold = new iTextSharp.text.Font(arial, 16, iTextSharp.text.Font.BOLD); iTextSharp.text.Font f_14_bold = new iTextSharp.text.Font(arial, 14, iTextSharp.text.Font.BOLD); iTextSharp.text.Font f_10_bold = new iTextSharp.text.Font(arial, 10, iTextSharp.text.Font.BOLD); PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("ReporteEmpresa.pdf", FileMode.Create)); doc.Open(); // Creamos la imagen y le ajustamos el tamaño iTextSharp.text.Image imagen = iTextSharp.text.Image.GetInstance("C:\\Users\\Laboratorio\\Desktop\\Sistema Monografico\\Divisa\\Divisa\\Imagenes\\Logo1.png"); imagen.BorderWidth = 0; imagen.SetAbsolutePosition(13, 700); float percentage = 0.0f; percentage = 150 / imagen.Width; imagen.ScalePercent(percentage * 100); Paragraph paragraph = new Paragraph(" CASA DE CAMBIO VITA, SRL", f_9_bold); Paragraph paragraph2 = new Paragraph("\n\n Reporte Datos Empresa", f_14_bold); doc.Add(imagen); doc.Add(paragraph); doc.Add(paragraph2); Paragraph paragraph22 = new Paragraph("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Soft-Divisa", f_7_normal); doc.Add(paragraph22); doc.Close(); }

    Mi table es la siguiente:

    Esta es mi conexion  a la base de datos:

    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString());
    

    Amigos por favor ayudenme, no se programar mucho y esto es parte de mi tesis y no me queda mucho tiempo, ayudenme con el codigo dentro de itextcharp o si ustedes creen que hay otra forma mejor por favor diganmela.

    gracias.



    • Editado agustin173 lunes, 3 de agosto de 2020 13:16
    lunes, 3 de agosto de 2020 12:57

Respuestas

  • Hola  agustin173,

      

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto el siguiente enlace que contiene un documento con información sobre el caso que reportas 

    itextsharp-in-C-Sharp/

    Gracias por usar los foros de MSDN. 

      

    Andres Aguilar 

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    • Marcado como respuesta agustin173 miércoles, 5 de agosto de 2020 11:59
    lunes, 3 de agosto de 2020 17:54
  • Hola  agustin173

      

    Es un ejemplo de como crear un pdf con itextsharp y ahí trae especificamente como hacer el select a la bd ya que es mucho codigo te redirecciono a la página para mayor información, primero tienes que hacer un select de todos los datos que quieras mostrar en el pdf y despues con el itextsharp creas el pdf no al reves. sé que lo estás haciendo en webforms y bueno el codigo es practicamente similar en la parte de como hacer el select y empezar a construir un pdf con itextsharp. otro ejemplo

      

    Gracias por usar los foros de MSDN. 

      

    Andres Aguilar

     ____________________________ 

      



    • Editado Andres Aguilar M lunes, 3 de agosto de 2020 21:48
    • Marcado como respuesta agustin173 miércoles, 5 de agosto de 2020 11:59
    lunes, 3 de agosto de 2020 21:48
  • Estimado , este ejemplo es mas simple y te guiara mejor:

    https://www.c-sharpcorner.com/UploadFile/009464/export-gridview-to-word-document-using-itextsharp-library/

    y este otro te mostrara otra perspectiva

    https://www.c-sharpcorner.com/UploadFile/d40a40/create-simple-pdf-file-using-itextsharp-library/

    aca te envio un enlace a youtube

    https://www.youtube.com/watch?v=sQOf8qVYaX0&list=PL9VntEIxiRgd3yNTIIsYO1znwa5Z1qrEf

    • Editado Rodrigo Menares lunes, 3 de agosto de 2020 22:44
    • Marcado como respuesta agustin173 miércoles, 5 de agosto de 2020 11:59
    lunes, 3 de agosto de 2020 22:42

Todas las respuestas

  • Hola  agustin173,

      

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto el siguiente enlace que contiene un documento con información sobre el caso que reportas 

    itextsharp-in-C-Sharp/

    Gracias por usar los foros de MSDN. 

      

    Andres Aguilar 

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    • Marcado como respuesta agustin173 miércoles, 5 de agosto de 2020 11:59
    lunes, 3 de agosto de 2020 17:54
  • Andres disculpa pero no se que hacer con esta informacion.

    lunes, 3 de agosto de 2020 21:12
  • Hola  agustin173

      

    Es un ejemplo de como crear un pdf con itextsharp y ahí trae especificamente como hacer el select a la bd ya que es mucho codigo te redirecciono a la página para mayor información, primero tienes que hacer un select de todos los datos que quieras mostrar en el pdf y despues con el itextsharp creas el pdf no al reves. sé que lo estás haciendo en webforms y bueno el codigo es practicamente similar en la parte de como hacer el select y empezar a construir un pdf con itextsharp. otro ejemplo

      

    Gracias por usar los foros de MSDN. 

      

    Andres Aguilar

     ____________________________ 

      



    • Editado Andres Aguilar M lunes, 3 de agosto de 2020 21:48
    • Marcado como respuesta agustin173 miércoles, 5 de agosto de 2020 11:59
    lunes, 3 de agosto de 2020 21:48
  • Lo que pasa andres es que no soy muy diestro programando y cuando veo el ejemplo no veo donde esta la conexion a la base de datos ni la forma para hacer lo del select.

    disculpa mi ignorancia pero es que no se programar como ustedes soy un novato.

    y tampoco se interpretar los ejemplos de las paginas algunas veces y esta pagina de verdad que no la entiendo.

    Excusame hermano de verdad.

    por favor no te molestes conmigo.

    lunes, 3 de agosto de 2020 22:14
  • Estimado , este ejemplo es mas simple y te guiara mejor:

    https://www.c-sharpcorner.com/UploadFile/009464/export-gridview-to-word-document-using-itextsharp-library/

    y este otro te mostrara otra perspectiva

    https://www.c-sharpcorner.com/UploadFile/d40a40/create-simple-pdf-file-using-itextsharp-library/

    aca te envio un enlace a youtube

    https://www.youtube.com/watch?v=sQOf8qVYaX0&list=PL9VntEIxiRgd3yNTIIsYO1znwa5Z1qrEf

    • Editado Rodrigo Menares lunes, 3 de agosto de 2020 22:44
    • Marcado como respuesta agustin173 miércoles, 5 de agosto de 2020 11:59
    lunes, 3 de agosto de 2020 22:42
  • Hola agustin173, 

      

    Tranquilo no tiene que disculparse en nada para eso es el foro. con respecto a lo que dije es que primero tiene que abrir la conexión con la base de datos tutorial de como conectarse , despues de probar que la conexion esté bien ahora si ya puedes empezar a trabajar con itextsharp aqui te dejo un ejemplo más facil de entender. tablas con itextsharp ahi trae la conexion a la bd y como formar una tabla con esos datos. 

    Andres Aguilar 

    ____________________________  

    martes, 4 de agosto de 2020 16:53
  • Andres y Rodrigo muchas gracias tenian mucha razon, pude resolverlo con lo que ustedes me diron tuve que hacer muchas pruebas pero al final comprendi el tutorial y lo aplique muchas gracias por su paciencia.

    gracias.

    Dejare el codigo aqui por si alguien algundia lo necesita:

    public void Reporte()
            {
    
                Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
    
                BaseFont arial = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
                iTextSharp.text.Font f_7_normal = new iTextSharp.text.Font(arial, 7, iTextSharp.text.Font.NORMAL);
                iTextSharp.text.Font f_9_bold = new iTextSharp.text.Font(arial, 16, iTextSharp.text.Font.BOLD);
                iTextSharp.text.Font f_14_bold = new iTextSharp.text.Font(arial, 14, iTextSharp.text.Font.BOLD);
                iTextSharp.text.Font f_10_bold = new iTextSharp.text.Font(arial, 10, iTextSharp.text.Font.BOLD);
                iTextSharp.text.Font f_12_bold = new iTextSharp.text.Font(arial, 12, iTextSharp.text.Font.BOLD);
    
                PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("ReporteEmpresa.pdf", FileMode.Create));
                doc.Open();
    
                // Creamos la imagen y le ajustamos el tamaño
                iTextSharp.text.Image imagen = iTextSharp.text.Image.GetInstance("C:\\Users\\Laboratorio\\Desktop\\Sistema Monografico\\Divisa\\Divisa\\Imagenes\\Logo1.png");
                imagen.BorderWidth = 0;
                imagen.SetAbsolutePosition(13, 700);
                float percentage = 0.0f;
                percentage = 150 / imagen.Width;
                imagen.ScalePercent(percentage * 100);
    
                SqlParameter param = new SqlParameter("@Usuario", LblUsuario.Text.Trim());
                SqlCommand cmd = new SqlCommand("sp_CheclLogin2", con);
                cmd.Parameters.Add(param);
                cmd.CommandType = CommandType.StoredProcedure;
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
    
                if (dr.Read())
                {
    
                    Session["Log_NickName"] = dr["Log_NickName"].ToString();
                    Session["Log_Status"] = dr["Log_Status"].ToString();
                    Session["Log_NickName"] = LblUsuario.Text;
                    
    
                }
    
                Paragraph paragraph = new Paragraph("                                                         CASA DE CAMBIO VITA", f_9_bold);
                Paragraph paragraph2 = new Paragraph("\n\n        Reporte Datos Empresa", f_14_bold);
                Paragraph paragraph3 = new Paragraph("\n\n          FECHA.: " + DateTime.Now + "                                                                                                                              Usuario.: " + LblUsuario.Text, f_10_bold);
    
                doc.Add(imagen);
                doc.Add(paragraph);
                doc.Add(paragraph2);
                doc.Add(paragraph3);
                
                // Empezamos a crear la tabla, definimos una tabla de 6 columnas
                PdfPTable table = new PdfPTable(4); 
                doc.Add(new Paragraph(" "));
                doc.Add(new Paragraph(" "));
                
                table.DefaultCell.BackgroundColor = BaseColor.LIGHT_GRAY;
                // Esta es la primera fila
                table.AddCell(new Paragraph("         EMPRESA", f_14_bold));
                table.AddCell(new Paragraph("     DIRECCION", f_14_bold));
                table.AddCell(new Paragraph("     TELEFONO", f_14_bold));
                table.AddCell(new Paragraph("            RNC", f_14_bold));
    
                table.DefaultCell.BackgroundColor = BaseColor.WHITE;
                PdfPCell cell = new PdfPCell(new Phrase(""));
                cell.Colspan = 4;
                cell.Border = 0;
                cell.HorizontalAlignment = 1;
                table.AddCell(cell);
    
                string constr10 = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
                using (SqlConnection conn = new SqlConnection(constr10))
                {
    
                    string query = "select Emp_Empresa, Emp_Direccion, Emp_Telefono, Emp_RNC from Empresa";
                    SqlCommand cmd200 = new SqlCommand(query, conn);
    
                    try
                    {
    
                        conn.Open();
                        using (SqlDataReader rdr = cmd200.ExecuteReader())
                        {
    
                            while (rdr.Read())
                            {
    
                                table.AddCell(rdr[0].ToString());
                                table.AddCell(rdr[1].ToString());
                                table.AddCell(rdr[2].ToString());
                                table.AddCell(rdr[3].ToString());
    
                            }
    
                        }
    
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                    }
    
                    doc.Add(table);
    
                }
                                              
                Paragraph paragraph22 = new Paragraph("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                                                                                                                                                                                                                                                                                                                 Soft-Divisa", f_7_normal);
                doc.Add(paragraph22);
                doc.Close();
    
                AgregarPrintScript("C:\\Program Files (x86)\\IIS Express\\ReporteEmpresa.pdf", "C:\\Facturas\\ReporteEmpresa.pdf");
                
            }

    miércoles, 5 de agosto de 2020 12:02
  • Hola agustin173

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada. Debido a ello, este hilo será cerrado. 

    Si es necesario, por favor abra un nuevo hilo. 

    Gracias por usar los foros de MSDN. 

     

     Andres Aguilar

    ____________________________ 

      


    miércoles, 5 de agosto de 2020 13:07