none
Exportar GridView a PDF RRS feed

Respuestas

  • public void PDFconvert(DataGridView dgv, string nombreArchivo, int cantTrans)
            {
                if (File.Exists(nombreArchivo))
                    File.Delete(nombreArchivo);
    
                Document document = new Document(((iTextSharp.text.Rectangle)PageSize.LETTER).Rotate(), 10f, 10f, 10f, 0.0f);
                FileSecurity fileSecurity = new FileSecurity();
                int bufferSize = 8;
                FileStream fileStream = new FileStream(nombreArchivo, FileMode.OpenOrCreate, FileSystemRights.FullControl, FileShare.ReadWrite,
                    bufferSize, FileOptions.None);
                PdfWriter.GetInstance(document, (Stream)fileStream);
                document.Open();
                document.AddAuthor("Encabezado");
                document.Add((IElement)new Paragraph("Encabezado1"));
                document.Add((IElement)new Paragraph("Encabezado2"));
                document.Add((IElement)new Paragraph("Encabezado3"));
                document.Add((IElement)new Paragraph("Fecha y hora: " + DateTime.Now.ToString()));
                document.Add((IElement)new Paragraph(" "));
                Table table = new Table(dgv.ColumnCount);
                table.WidthPercentage = 100f;
                table.DefaultCell.BorderWidth = 1f;
                table.DefaultCell.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
                table.DefaultCell.HorizontalAlignment = 1;
                table.Cellpadding = 4f;
                foreach (DataGridViewColumn dataColumn in dgv.Columns)
                    table.AddCell(dataColumn.HeaderText + " ");
                table.Cellpadding = 2f;
                table.DefaultCell.BorderWidth = 1f;
                table.DefaultCell.BackgroundColor = iTextSharp.text.Color.GREEN;
                for (int index1 = 0; index1 < dgv.Rows.Count -1; ++index1)
                {
                    for (int index2 = 0; index2 < dgv.Columns.Count; ++index2)
                    {
                        //if (index2 >= 3 && index2 <= 5)
                        //{
                        //    string str = string.Format("{0:0.00}", dgv.Rows[index1].Cells[index2].Value);
                        //    table.AddCell(str);
                        //}
                        //else
                            table.AddCell(dgv.Rows[index1].Cells[index2].Value.ToString());
                    }
                }
                document.Add((IElement)table);
                document.Add((IElement)new Paragraph(" "));
                document.Add((IElement)new Paragraph(" TOTAL : " + cantTrans.ToString() + " POR UN MONTO DE: $"));
                document.Add((IElement)new Paragraph(" "));
                document.Add((IElement)new Paragraph(" *** Fin de Reporte ***"));
                document.Close();
                fileStream.Close();
                //FileSecurity accessControl = File.GetAccessControl(nombreArchivo);
                //FileSystemAccessRule rule = new FileSystemAccessRule("SYSTEM", FileSystemRights.ReadAndExecute, AccessControlType.Allow);
                //accessControl.AddAccessRule(rule);
                //File.SetAccessControl(nombreArchivo, accessControl);
            }
        }
    no olvides puntuar y dar como respuesta

    Att. Franklin Andino

    sábado, 6 de febrero de 2016 19:02

Todas las respuestas

  • de forma directa no vas a poder, necesitas de alguna libreria como ser

    iTextSharp - Introducing Tables

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 6 de febrero de 2016 0:16
  • namespace proyecto
    {
        public class ReportePDF
        {
            public void PDF(DataTable dt, string nombreArchivo, int cantTrans, Decimal montoTrans)
            {
                if (File.Exists(nombreArchivo))
                    File.Delete(nombreArchivo);
    
                Document document = new Document(((Rectangle)PageSize.LETTER).Rotate(), 10f, 10f, 10f, 0.0f);
                FileSecurity fileSecurity = new FileSecurity();
                int bufferSize = 8;
                FileStream fileStream = new FileStream(nombreArchivo, FileMode.OpenOrCreate, FileSystemRights.FullControl, FileShare.ReadWrite, 
                    bufferSize, FileOptions.None);
                PdfWriter.GetInstance(document, (Stream)fileStream);
                document.Open();
                document.AddAuthor("Encabezado");
                document.Add((IElement)new Paragraph("Encabezado1"));
                document.Add((IElement)new Paragraph("Encabezado2"));
                document.Add((IElement)new Paragraph("Encabezado3"));
                document.Add((IElement)new Paragraph("Fecha y hora: " + DateTime.Now.ToString()));
                document.Add((IElement)new Paragraph(" "));
                Table table = new Table(dt.Columns.Count);
                table.WidthPercentage=100f;
                table.DefaultCell.BorderWidth=1f;
                table.DefaultCell.BackgroundColor=Color.LIGHT_GRAY;
                table.DefaultCell.HorizontalAlignment=1;
                table.Cellpadding=4f;
                foreach (DataColumn dataColumn in dt.Columns)
                    table.AddCell(dataColumn.ColumnName + " ");
                table.Cellpadding=2f;
                table.DefaultCell.BorderWidth=1f;
                table.DefaultCell.BackgroundColor=Color.WHITE;
                for (int index1 = 0; index1 < dt.Rows.Count; ++index1)
                {
                    for (int index2 = 0; index2 < dt.Columns.Count; ++index2)
                    {
                        if (index2 >= 3 && index2 <= 5)
                        {
                            string str = string.Format("{0:0.00}", dt.Rows[index1][index2]);
                            table.AddCell(str);
                        }
                        else
                            table.AddCell(dt.Rows[index1][index2].ToString());
                    }
                }
                document.Add((IElement)table);
                document.Add((IElement)new Paragraph(" "));
                document.Add((IElement)new Paragraph(" TOTAL : " + cantTrans.ToString() + " POR UN MONTO DE: $" + string.Format("{0:0.00}", montoTrans)));
                document.Add((IElement)new Paragraph(" "));
                document.Add((IElement)new Paragraph(" *** Fin de Reporte ***"));
                document.Close();
                fileStream.Close();
                //FileSecurity accessControl = File.GetAccessControl(nombreArchivo);
                //FileSystemAccessRule rule = new FileSystemAccessRule("SYSTEM", FileSystemRights.ReadAndExecute, AccessControlType.Allow);
                //accessControl.AddAccessRule(rule);
                //File.SetAccessControl(nombreArchivo, accessControl);
            }
        }
    }

    debes bajar la dll itextsharp.dll

    Att. Franklin Andino

    sábado, 6 de febrero de 2016 2:39
  • Ya tengo el itextsharp, inclusive ya agregue la referencia al proyecto pero no tengo idea como exportar el gridview a PDF
    sábado, 6 de febrero de 2016 15:38
  • public void PDFconvert(DataGridView dgv, string nombreArchivo, int cantTrans)
            {
                if (File.Exists(nombreArchivo))
                    File.Delete(nombreArchivo);
    
                Document document = new Document(((iTextSharp.text.Rectangle)PageSize.LETTER).Rotate(), 10f, 10f, 10f, 0.0f);
                FileSecurity fileSecurity = new FileSecurity();
                int bufferSize = 8;
                FileStream fileStream = new FileStream(nombreArchivo, FileMode.OpenOrCreate, FileSystemRights.FullControl, FileShare.ReadWrite,
                    bufferSize, FileOptions.None);
                PdfWriter.GetInstance(document, (Stream)fileStream);
                document.Open();
                document.AddAuthor("Encabezado");
                document.Add((IElement)new Paragraph("Encabezado1"));
                document.Add((IElement)new Paragraph("Encabezado2"));
                document.Add((IElement)new Paragraph("Encabezado3"));
                document.Add((IElement)new Paragraph("Fecha y hora: " + DateTime.Now.ToString()));
                document.Add((IElement)new Paragraph(" "));
                Table table = new Table(dgv.ColumnCount);
                table.WidthPercentage = 100f;
                table.DefaultCell.BorderWidth = 1f;
                table.DefaultCell.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
                table.DefaultCell.HorizontalAlignment = 1;
                table.Cellpadding = 4f;
                foreach (DataGridViewColumn dataColumn in dgv.Columns)
                    table.AddCell(dataColumn.HeaderText + " ");
                table.Cellpadding = 2f;
                table.DefaultCell.BorderWidth = 1f;
                table.DefaultCell.BackgroundColor = iTextSharp.text.Color.GREEN;
                for (int index1 = 0; index1 < dgv.Rows.Count -1; ++index1)
                {
                    for (int index2 = 0; index2 < dgv.Columns.Count; ++index2)
                    {
                        //if (index2 >= 3 && index2 <= 5)
                        //{
                        //    string str = string.Format("{0:0.00}", dgv.Rows[index1].Cells[index2].Value);
                        //    table.AddCell(str);
                        //}
                        //else
                            table.AddCell(dgv.Rows[index1].Cells[index2].Value.ToString());
                    }
                }
                document.Add((IElement)table);
                document.Add((IElement)new Paragraph(" "));
                document.Add((IElement)new Paragraph(" TOTAL : " + cantTrans.ToString() + " POR UN MONTO DE: $"));
                document.Add((IElement)new Paragraph(" "));
                document.Add((IElement)new Paragraph(" *** Fin de Reporte ***"));
                document.Close();
                fileStream.Close();
                //FileSecurity accessControl = File.GetAccessControl(nombreArchivo);
                //FileSystemAccessRule rule = new FileSystemAccessRule("SYSTEM", FileSystemRights.ReadAndExecute, AccessControlType.Allow);
                //accessControl.AddAccessRule(rule);
                //File.SetAccessControl(nombreArchivo, accessControl);
            }
        }
    no olvides puntuar y dar como respuesta

    Att. Franklin Andino

    sábado, 6 de febrero de 2016 19:02
  • Tengo lo siguiente, pero no realiza nada el codigo, podrian indicarme por favor si esta bien

     Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim documento = New Document
            documento.Open()
            Dim tabla = New PdfPTable(4)
            Dim celda = New PdfPCell(New Phrase("Productos"))
            celda.Colspan = 4
            celda.Border = 0
            celda.HorizontalAlignment = 1
            tabla.AddCell(celda)
            Using connection As New SqlConnection(DropDownList1.SelectedValue)
                Dim queryString As String = "SELECT art_Clave as 'SKU', art_Nombre as 'NOMBRE', art_Total as 'PRECIO DE VENTA', art_Existencia as 'EXISTENCIAS' FROM tArticulo WHERE art_Existencia > 0 ORDER BY art_Existencia DESC"
                Dim command As New SqlCommand(queryString, connection)
                Try
                    connection.Open()
                    Dim reader As SqlDataReader = command.ExecuteReader
                    Using (reader)
                        While reader.Read
                            tabla.AddCell(reader(0).ToString)
                            tabla.AddCell(reader(1).ToString)
                            tabla.AddCell(reader(2).ToString)
                            tabla.AddCell(reader(3).ToString)
                        End While
                    End Using
                Catch ex As Exception
                    Response.Write(String.Format("<script>alert('{0}')</script>", ex.Message))
                End Try
                documento.Add(tabla)
            End Using
            documento.Close()
        End Sub
    End Class
    De antemano muchas gracias

    lunes, 8 de febrero de 2016 17:41
  • te sirvio lo de pasar el grid a pdf??????

    Att. Franklin Andino

    lunes, 8 de febrero de 2016 18:39