ASP.NET - Crear PDF

 
Vista:

Crear PDF

Publicado por RyDer (3 intervenciones) el 31/12/2008 17:01:21
Hola a tod@s. Felices fiestas.

No se si lo habrán resuelto en algún lado (que no lo encuentro), pero quisiera saber cómo crear un archivo PDF a partir de la información en binario del archivo. Me explico:

Tengo una aplicacion Web que obtiene datos de un módulo SAP. Al ejecutar el módulo, me devuelve una tabla (de dos columnas) con la información en binario del archivo PDF a generar, para luego mostrarlo al usuario.

Yo tengo lo siguiente:

Private Sub crearArchivoPDF()

Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter("C:SAP" & CStr(Session("username")).ToUpper & ".pdf")
Dim i As Integer
Dim pdf As String

For i = 0 To TlineTable1.Count - 1
pdf = pdf & TlineTable1.Item(i).Tdformat & TlineTable1.Item(i).Tdline
Next
sw.Write(pdf)
sw.Close()

End Sub

El procedimiento crea el archivo en la ruta especificada, pero cuando lo abro me muestra un documento vacío, y al cabo de un tiempo me sale un mensaje de tipo "Error al leer el documento".
Debo decir que los 2 campos de la tabla contienen caracteres especiales, y al concatenarlos, los detecta como retorno de carro y fin de linea.

Hay alguna mejor manera de hacer esto?
Les agradecería enormemente.
Un abrazo. Cuidense. Gracias de antemano por la atención prestada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear PDF

Publicado por Juanis (2 intervenciones) el 06/01/2009 00:42:43
mmm....

bueno....

la verdad yo soy principiante en ASP perohice una cosa similar.

Tengo una base de datos en ORACLE en la cual se guardan archivos PDF en binario y después tengo que mostrarlos en una pag ASP

las instrucciones que use fueron

response.ContentType = "application/pdf"
Response.BinaryWrite(Ob_RS_Ora.fields("DOCUMENTO"))

espero te sirva

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear PDF

Publicado por RyDer (3 intervenciones) el 07/01/2009 18:00:48
Hola Juanis. Gracias por tu respuesta.

Aplique lo que me dices, pero por alguna razon sigue saliendo el documento vacío.
Tengo que decir que la salida de los campos de SAP siempre son String y me toco convertirlo a Byte.

Ahora mismo tengo esto:

Private Sub ExportarToPDF(ByVal fileName As String)

Dim i, j As Integer
Dim pdf As String

For i = 0 To TlineTable1.Count - 1
pdf = pdf & TlineTable1.Item(i).Tdformat
pdf = pdf & TlineTable1.Item(i).Tdline
Next

Dim encoding As New System.text.UTF8Encoding

Dim bytes As Byte() = encoding.GetBytes(pdf)
Dim bytesB As Byte()

For i = 0 To bytes.Length - 1
If Not bytes(i).Equals(Byte.MinValue) Then
ReDim Preserve bytesB(j)
bytesB(j) = bytes(i)
j = j + 1
End If
Next

Response.AddHeader("content-disposition", "attachment;filename=" & CStr(Session("username")).ToUpper & ".pdf")
Response.ContentType = "application/pdf"

Response.BinaryWrite(bytesB)
Response.End()

End Sub

Porque dentro del FOR hago el IF? Porque solamente elimino el caracter especial con codigo ASCII '0', ya que al final del archivo estaba lleno de esos caraceteres. Pense que era basura, pero al final termino igual, es decir sigue sin mostrar información en el PDF.
Lo del encoding lo encontre en otro foro, como digo, convierto de String a Byte para poder hacer el Response.BinaryWrite().

Si sabes (o saben) como podría mejorar esto, te (se) lo agradezco.
Un abrazo. Cuidense.

P.D.: Seguire buscando...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:aqui lo tienes

Publicado por hebert (1 intervención) el 19/01/2009 21:02:39
Imports System
Imports com.lowagie.text
Imports com.lowagie.text.pdf
Imports System.IO

Public Class Chap0101
Public Shared Sub Main(ByVal args As String())
Console.WriteLine("Chapter 1 example 1: Hello World")

' step 1: creation of a document-object
Dim document As New Document()

' step 2:
' we create a writer that listens to the document
' and directs a PDF-stream to a file

PdfWriter.getInstance(document, New FileStream("Chap0101.pdf", FileMode.Create))

' step 3: we open the document
document.open()

' step 4: we add a paragraph to the document
document.add(New Paragraph("Hello World"))

' step 5: we close the document
document.close()
End Sub

End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar