Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/11/2015, 00:55
wwwmaster
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años, 1 mes
Puntos: 37
Respuesta: Exporta datos dataGridView a PDF

sub GENERARPDF()

Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment;filename=EstadoCta.pdf")
Response.Cache.SetCacheability(HttpCacheability.No Cache)

'//Render PlaceHolder to temporary stream
Dim stringWrite As System.IO.StringWriter = New StringWriter()
Dim htmlWrite As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(stringWrite)

' EL GRIDVIEW ESTA COLOCADO DENTRO DE UN PLACEHOLDER

PlaceHolderPdf.RenderControl(htmlWrite)


Dim reader As StringReader = New StringReader(stringWrite.ToString())
'//Create PDF document
Dim doc As Document = New Document(PageSize.A4)
Dim parser As HTMLWorker = New HTMLWorker(doc)

' para email
Dim writer As PdfWriter

PdfWriter.GetInstance(doc, Response.OutputStream)

doc.Open()
Try
parser.Parse(reader)
Catch ex As Exception

'//Display parser errors in PDF.
'//Parser errors will also be wisible in Debug.Output window in VS
Finally
If paraEmail Then
writer.CloseStream = False

End If
doc.Close()
End Try

end sub

--------------------------------
CODIGO DEL GRIDVIEW:
<asp:PlaceHolder ID="PlaceHolderPdf" runat="server">

<asp:GridView id="gridView1"
runat="server" Width="80%"
HeaderStyle-CssClass="table_list"
AutoGenerateColumns="False"
cssclass = "table_resultados"
EmptyDataText = "No hay datos">
......

</asp:GridView>

</asp:PlaceHolder>


y POR SI ENVIARA UN ERROR EL CODIGO AL MOMENTO DE QUERER GENERAR EL PDF, COLOCANDO ESTA FUNCION en el aspx se "brinca" el error (la funcion asi como esta, sin codigo ejecutabel interno):


Public Overrides Sub VerifyRenderingInServerForm(ByVal control As System.Web.UI.Control)
' Para exportar a excel/PDF
'este codigo arroja un error cuando se usa ocn la master page, pero con esta declaracion se soluciona
' y con EnableEventValidation="false"
End Sub