Foros del Web » Programando para Internet » ASPX (.net) »

Crear pdf con boton en webform

Estas en el tema de Crear pdf con boton en webform en el foro de ASPX (.net) en Foros del Web. Hola a todos. Tengo una pagina con varios datagrid y datatables. Necesito exportar o transforma a pdf todo el contenido de este formulario web. como ...
  #1 (permalink)  
Antiguo 19/07/2009, 19:08
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
Crear pdf con boton en webform

Hola a todos. Tengo una pagina con varios datagrid
y datatables. Necesito exportar o transforma a pdf todo el contenido de este formulario web. como podria hacerlo al hacer click a un boton en la pagina.
Saben cómo puedo hacerlo?

Gracias a todos!

Última edición por sabao; 19/07/2009 a las 19:40
  #2 (permalink)  
Antiguo 19/07/2009, 20:25
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Crear pdf con boton en webform

Encontre este articulo
http://www.dotnetpanama.com/dotnetpa...opios-PDF.aspx

Brinda una libreria para crear PDF, verifica a ver si te sirve.

Saludos,
  #3 (permalink)  
Antiguo 19/07/2009, 21:41
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Crear pdf con boton en webform

Cita:
Iniciado por dwaks Ver Mensaje
Encontre este articulo
http://www.dotnetpanama.com/dotnetpa...opios-PDF.aspx

Brinda una libreria para crear PDF, verifica a ver si te sirve.

Saludos,
Este codigo noc donde ponerlo si es en el evento click del boton o otra parte..
alguna otra sugerencias gracias de antemano
  #4 (permalink)  
Antiguo 20/07/2009, 10:19
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Crear pdf con boton en webform

No se si el código ese te ayude, pienso que es más para que veas el uso de la libreria y la adaptes a lo que quieras hacer.

Pero deberás programar tu propia forma de uso.

Saludos,
  #5 (permalink)  
Antiguo 21/07/2009, 14:44
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Crear pdf con boton en webform

Cita:
Iniciado por dwaks Ver Mensaje
No se si el código ese te ayude, pienso que es más para que veas el uso de la libreria y la adaptes a lo que quieras hacer.

Pero deberás programar tu propia forma de uso.

Saludos,
Hola encontre este ejemplo http://www.aspsnippets.com/post/2009...TextSharp.aspx

pero abre el pdf pero no me muestra nada le dejo una fotos y el codigo escrito.


[IMG][/IMG]

[IMG][/IMG]



Código PHP:
Imports System.Data
Imports System
.Data.SqlClient
Imports System
.IO
Imports iTextSharp
.text
Imports iTextSharp
.text.pdf
Imports iTextSharp
.text.html
Imports iTextSharp
.text.html.simpleparser
Imports System
.Text
Partial 
Class VB
    Inherits System
.Web.UI.Page

    
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        Dim strConnString 
As String ConfigurationManager.ConnectionStrings("instrumentosConnectionString").ConnectionString
        Dim con 
As New SqlConnection(strConnString)
        
Dim cmd As New SqlCommand()
        
Dim sda As New SqlDataAdapter()
        
Dim ds As New DataSet()
        
cmd.CommandType CommandType.Text
        cmd
.CommandText "SELECT * FROM [subarea]"
        
cmd.Connection con
        sda
.SelectCommand cmd
        
    End Sub
    
Protected Sub btnExportPDF_Click(ByVal sender As ObjectByVal e As EventArgsHandles btnExportPDF.Click


        
'Create a table
        Dim table As New iTextSharp.text.Table(GridView1.Columns.Count)
        table.Cellpadding = 5

        '
Set the column widths 
        Dim widths 
As Integer() = New Integer(GridView1.Columns.Count 1) {}
        For 
As Integer 0 To GridView1.Columns.Count 1
            widths
(x) = CInt(GridView1.Columns(x).ItemStyle.Width.Value)
            
Dim cellText As String Server.HtmlDecode(GridView1.HeaderRow.Cells(x).Text)
            
Dim cell As New iTextSharp.text.Cell(cellText)
            
cell.BackgroundColor = New Color(System.Drawing.ColorTranslator.FromHtml("#008000"))
            
table.AddCell(cell)
        
Next
        table
.SetWidths(widths)

        
'Transfer rows from GridView to table
        For i As Integer = 0 To GridView1.Rows.Count - 1
            If GridView1.Rows(i).RowType = DataControlRowType.DataRow Then
                For j As Integer = 0 To GridView1.Columns.Count - 1
                    Dim cellText As String = Server.HtmlDecode(GridView1.Rows(i).Cells(j).Text)
                    Dim cell As New iTextSharp.text.Cell(cellText)

                    '
Set Color of Alternating row
                    
If i Mod 2 <> 0 Then
                        cell
.BackgroundColor = New Color(System.Drawing.ColorTranslator.FromHtml("#C2D69B"))
                    
End If
                    
table.AddCell(cell)
                
Next
            End 
If
        
Next
        
'Create the PDF Document
        Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 10.0F, 0.0F)
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
        pdfDoc.Open()
        pdfDoc.Add(table)
        pdfDoc.Close()
        Response.ContentType = "application/pdf"
        Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf")
        Response.Cache.SetCacheability(HttpCacheability.NoCache)
        Response.Write(pdfDoc)
        Response.End()
    End Sub
    Public Overloads Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
        ' 
Verifies that the control is rendered 
    End Sub
    
Protected Sub OnPaging(ByVal sender As ObjectByVal e As GridViewPageEventArgs)
        
GridView1.PageIndex e.NewPageIndex
        GridView1
.DataBind()
    
End Sub


End 
Class 

Espero ayuda. saludos
  #6 (permalink)  
Antiguo 21/07/2009, 15:20
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Crear pdf con boton en webform

Al parecer no le estás pasando nada a tu pdf, hay una parte del código

pdfDoc.Add(table)

Ahí al parecer le deberías pasar tu datagridview, el mismo que muestras en la página, porque no es table lo que estás mostrando en la página cierto? tu llenas el datagrid en otro lado y lo muestas.

Prueba mostrando en tu página ese "table" que estás creando.
Y ahí verás si es que tiene algún dato dentro.


O prueba este código que está completamente explicado.
http://foro.portalhacker.net/index.p...html#msg371445

Saludos!.
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #7 (permalink)  
Antiguo 21/07/2009, 16:14
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Crear pdf con boton en webform

Cita:
Iniciado por pyroCL Ver Mensaje
Al parecer no le estás pasando nada a tu pdf, hay una parte del código

pdfDoc.Add(table)

Ahí al parecer le deberías pasar tu datagridview, el mismo que muestras en la página, porque no es table lo que estás mostrando en la página cierto? tu llenas el datagrid en otro lado y lo muestas.

Prueba mostrando en tu página ese "table" que estás creando.
Y ahí verás si es que tiene algún dato dentro.


O prueba este código que está completamente explicado.
http://foro.portalhacker.net/index.p...html#msg371445

Saludos!.
Hola logre ver el pdf pero no me muestra las filas de colores .. sino solo la información . este es el codigo


[IMG][/IMG]

Código PHP:
 Protected Sub btnExportPDF_Click(ByVal sender As ObjectByVal e As System.EventArgsHandles btnExportPDF.Click


        Response
.ContentType "application/pdf"
        
Response.AddHeader("content-disposition""attachment;filename=GridViewExport.pdf")
        
Response.Cache.SetCacheability(HttpCacheability.NoCache)
        
Dim sw As New StringWriter()
        
Dim hw As New HtmlTextWriter(sw)
        
DetailsView1.AllowPaging False
        DetailsView1
.DataBind()
        
DetailsView1.RenderControl(hw)
        
GridView1.AllowPaging False
        GridView1
.DataBind()
        
GridView1.RenderControl(hw)
        
Dim sr As New StringReader(sw.ToString())
        
Dim pdfDoc As New Document(PageSize.A410.0F10.0F10.0F0.0F)
        
Dim htmlparser As New HTMLWorker(pdfDoc)
        
PdfWriter.GetInstance(pdfDocResponse.OutputStream)
        
pdfDoc.Open()
        
htmlparser.Parse(sr)
        
pdfDoc.Close()
        
Response.Write(pdfDoc)
        
Response.End()
    
End Sub 
  #8 (permalink)  
Antiguo 21/07/2009, 16:57
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: Crear pdf con boton en webform

Viendo el ejemplo que presentaste debes aplicar el flujo de el proceso que ellos aclaran allí:

1- Primero se debe trabajar con la tabla de la libreria iTextSharp.text.Table
2- Luego cargar y configurar los datos de el GridView a el objeto iTextSharp.text.Table
3- Despues ya con la tabla configurada con su informacion y colores entonces lo pasas al documento pdf y lo muestras.

Esa libreria no la conocia yo uso PdfSharp pero la verdad me gusto y comenzaré a explorar el uso de esa libreria porque lo que yo hacia antes para pasar la informacion:

1- Tenia una página asp.x que solo mostraba el Gridview y esta página yo la llamaba usando el objeto WebBrowser y sacando una imagen de el resultado de la página.
2- Luego esa imagen la pasaba al PDF usando el PdfSharp y se veia todo bien

Pero veo que con esta libreria que tienes se puede pasar todo a el objeto iTextSharp.text.Table y darle el formato adecuado alli y salvarlo en un documento.

Saludos,
  #9 (permalink)  
Antiguo 21/07/2009, 17:33
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Crear pdf con boton en webform

Cita:
Iniciado por sabao Ver Mensaje
Hola a todos. Tengo una pagina con varios datagrid
y datatables. Necesito exportar o transforma a pdf todo el contenido de este formulario web. como podria hacerlo al hacer click a un boton en la pagina.
Saben cómo puedo hacerlo?

Gracias a todos!
Me gustaria ahora exportalo con foto al pdf, bueno lo cargo de esta manera ala grilla

[IMG][/IMG]

despues



y este el resultado




[IMG][/IMG]

como lo detallo aqui


me envia este error

[IMG][/IMG]


este es mi codigo de la grilla

Código PHP:
<asp:GridView ID="GridView1" runat="server" 
        
AutoGenerateColumns "False" Font-Names "Arial" 
        
Font-Size "11pt" AlternatingRowStyle-BackColor "#C2D69B"  
        
HeaderStyle-BackColor "green"   
        
OnPageIndexChanging "OnPaging" DataKeyNames="TAG" DataSourceID="SqlDataSource1" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical" >
       <
Columns>
           <
asp:BoundField DataField="TAG" HeaderText="TAG" ReadOnly="True" SortExpression="TAG" />
           <
asp:BoundField DataField="eqmodelo" HeaderText="eqmodelo" SortExpression="eqmodelo" />
           <
asp:ImageField DataImageUrlField="eqfoto">
           </
asp:ImageField>
       </
Columns
            <
HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
            <
AlternatingRowStyle BackColor="#CCCCCC" />
            <
FooterStyle BackColor="#CCCCCC" />
            <
PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
            <
SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
       </
asp:GridView

Espero una ayudita , saludos

Última edición por sabao; 21/07/2009 a las 18:26
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:34.