Para poder abrir un pdf desde un array de bytes en un webform de asp.net deberas hacerlo de la siguiente manera.
Para este ejemplo he añadido el pdf en el proyecto para que se copie siempre y poder realizarlo sin problemas
PdfContenido PdfCoiarSiempre
Crea un aspx y ve a la parte de codigo, ya que le daremos las instrucciones desde el codebehind
Primero leeremos en fichero en cuestión y lo cargaremos en un array de bytes.
1 2 |
Dim sr As New StreamReader(AppDomain.CurrentDomain.BaseDirectory & "Soulsmakers.pdf") |
A Continuacion declaramos el array con la longitud del contenido y rellenamos los bytes.
1 2 |
Dim by(sr.BaseStream.Length - 1) As Byte sr.BaseStream.Read(by, 0, by.Length - 1) |
Ahora nos queda la parte final y es asignar a el webform el contenido del array dictando al context el formato que se le esta pasando.
1 2 3 4 5 |
Context.Response.OutputStream.Write(by, 0, by.Length - 1) Response.ContentType = "application/pdf" Context.Response.Flush() |
Bien, ejecuta. deberias de poder ver el pdf que has cargado.
PDF en aspx
y ya esta, ahora dejo todo el codigo seguido:
1 2 3 4 5 6 7 8 9 10 11 12 |
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim sr As New StreamReader(AppDomain.CurrentDomain.BaseDirectory & "Soulsmakers.pdf") Dim by(sr.BaseStream.Length - 1) As Byte sr.BaseStream.Read(by, 0, by.Length - 1) Context.Response.OutputStream.Write(by, 0, by.Length - 1) Response.ContentType = "application/pdf" Context.Response.Flush() End Sub |
Espero que sirva un saludo