
Abrir pdf incrustado como recurso desde botón
Publicado por Luis (12 intervenciones) el 20/08/2014 20:10:39
Hola,
Necesito hacer que, al pulsar un botón de mi programa, se abra un pdf. Dicho pdf debe estar contenido dentro del propio programa (como recurso asumo). he probado lo siguiente pero me da error y no sé por qué. Si a alguien se le ocurre, que me avise por favor :)
1.- primero he ido a las propiedades del programa a la pestaña de recursos. Agregar archivo existente y he agragado el archivo pdf (A.pdf)
2.- En el botón he escrito (es evento de doble click sobre un label):
Private Sub Label7_DoubleClick(sender As Object, e As EventArgs) Handles Label7.DoubleClick
Dim assembly As System.Reflection.Assembly = _
System.Reflection.Assembly.GetExecutingAssembly()
Dim root As String = assembly.GetName().Name
Dim stream As System.IO.Stream = assembly.GetManifestResourceStream(root + "." + "A.pdf")
Dim buffer(Convert.ToInt32(stream.Length) - 1) As Byte
stream.Read(buffer, 0, buffer.Length)
stream.Close()
Dim f As New IO.FileStream("A.pdf", IO.FileMode.Create, IO.FileAccess.Write)
f.Write(buffer, 0, buffer.Length)
f.Close()
Process.Start("A.pdf")
End Sub
En la linea de "Dim buffer.." me salta la excepeción de NullReference
¿Alguna idea?
Muchas gracias de antemano
Saludos
Luis
Necesito hacer que, al pulsar un botón de mi programa, se abra un pdf. Dicho pdf debe estar contenido dentro del propio programa (como recurso asumo). he probado lo siguiente pero me da error y no sé por qué. Si a alguien se le ocurre, que me avise por favor :)
1.- primero he ido a las propiedades del programa a la pestaña de recursos. Agregar archivo existente y he agragado el archivo pdf (A.pdf)
2.- En el botón he escrito (es evento de doble click sobre un label):
Private Sub Label7_DoubleClick(sender As Object, e As EventArgs) Handles Label7.DoubleClick
Dim assembly As System.Reflection.Assembly = _
System.Reflection.Assembly.GetExecutingAssembly()
Dim root As String = assembly.GetName().Name
Dim stream As System.IO.Stream = assembly.GetManifestResourceStream(root + "." + "A.pdf")
Dim buffer(Convert.ToInt32(stream.Length) - 1) As Byte
stream.Read(buffer, 0, buffer.Length)
stream.Close()
Dim f As New IO.FileStream("A.pdf", IO.FileMode.Create, IO.FileAccess.Write)
f.Write(buffer, 0, buffer.Length)
f.Close()
Process.Start("A.pdf")
End Sub
En la linea de "Dim buffer.." me salta la excepeción de NullReference
¿Alguna idea?
Muchas gracias de antemano
Saludos
Luis
Valora esta pregunta


0