Foros del Web » Programación para mayores de 30 ;) » .NET »

enviar PDF via Web Service

Estas en el tema de enviar PDF via Web Service en el foro de .NET en Foros del Web. que tal a tod@s.. un saludo y felicez fiestas navideñas y de año nuevo. alguien me podria ayudar.. como podria enviar un archivo pdf via ...
  #1 (permalink)  
Antiguo 29/12/2009, 11:01
 
Fecha de Ingreso: agosto-2004
Mensajes: 296
Antigüedad: 19 años, 9 meses
Puntos: 0
enviar PDF via Web Service

que tal a tod@s.. un saludo y felicez fiestas navideñas y de año nuevo.

alguien me podria ayudar.. como podria enviar un archivo pdf via Web Service.?

se me ocurrio convertirlo en bytes o algo asi y en el servidor, convertir esa cadena en pdf.. y guardarla en alguna carpeta, pero hasta ahora no se como convertir el pdf en bytes para pasarlo a una cadena.. enviarlo por XML y en el server... reconvertirlo a byte y luego a pdf.

alguien me podria ayudar? saludos y muchas gracias. Feliz 2010!!!!
  #2 (permalink)  
Antiguo 29/12/2009, 12:25
Avatar de xjuanch0x  
Fecha de Ingreso: septiembre-2009
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 1
enviar PDF via Web Service

Cita:
Iniciado por suprempada Ver Mensaje
que tal a tod@s.. un saludo y felicez fiestas navideñas y de año nuevo.

alguien me podria ayudar.. como podria enviar un archivo pdf via Web Service.?

se me ocurrio convertirlo en bytes o algo asi y en el servidor, convertir esa cadena en pdf.. y guardarla en alguna carpeta, pero hasta ahora no se como convertir el pdf en bytes para pasarlo a una cadena.. enviarlo por XML y en el server... reconvertirlo a byte y luego a pdf.

alguien me podria ayudar? saludos y muchas gracias. Feliz 2010!!!!
Bueno primero no tienes que convertir a cadena, si estas trabajando con un Servicio Web por ejemplo, has una función que lea el archivo y que devuelva un arreglo de Bytes.

Ej:

<WebMethod()> _
Public Function LeerArchivo(ByVal Ruta As String) As Byte()

Try
Return My.Computer.FileSystem.ReadAllBytes(Ruta)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function



y cuando lo vallas a escribir solo mandas las ruta EJ:

Try
File.WriteAllBytes("Y:\Peliculas\ArchivoCopiado.pd f", LeerArchivo("c:\ArchivoOriginal.pdf"))

Catch ex As Exception
MsgBox(ex.Message)
End Try

y listo... es muy fácil
  #3 (permalink)  
Antiguo 30/12/2009, 12:30
 
Fecha de Ingreso: agosto-2004
Mensajes: 296
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: enviar PDF via Web Service

muchas gracias xjuanch0x, de verdad te lo agradesco.

aprovechando de tu sabiduria.... como podria guardar el arreglo de bytes en SQL server y despues recuperarlo para generar el pdf?... intente poniendo un campo varbinary en max... y pasandole el parametro desde C# como varbinary, pero al parecer no me lo esta guardando correctamente.

saludos y de nuevo muchisimas gracias!!!!!!!
  #4 (permalink)  
Antiguo 30/12/2009, 15:42
Avatar de xjuanch0x  
Fecha de Ingreso: septiembre-2009
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: enviar PDF via Web Service

Cita:
Iniciado por suprempada Ver Mensaje
muchas gracias xjuanch0x, de verdad te lo agradesco.

aprovechando de tu sabiduria.... como podria guardar el arreglo de bytes en SQL server y despues recuperarlo para generar el pdf?... intente poniendo un campo varbinary en max... y pasandole el parametro desde C# como varbinary, pero al parecer no me lo esta guardando correctamente.

saludos y de nuevo muchisimas gracias!!!!!!!
Cita:
Iniciado por suprempada Ver Mensaje
muchas gracias xjuanch0x, de verdad te lo agradesco.

aprovechando de tu sabiduria.... como podria guardar el arreglo de bytes en SQL server y despues recuperarlo para generar el pdf?... intente poniendo un campo varbinary en max... y pasandole el parametro desde C# como varbinary, pero al parecer no me lo esta guardando correctamente.

saludos y de nuevo muchisimas gracias!!!!!!!



Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatter
Imports System.Data
Imports System.Xml.Serialization
Imports System
Imports System.Data.SqlClient


Public Class Form1

Public Function LeerArchivo(ByVal Ruta As String) As Byte()
Try
Return My.Computer.FileSystem.ReadAllBytes(Ruta)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim link As New SqlConnection("server=localhost\Sqlexpress;databas e=Pruebas;Integrated Security=true")
Dim cmd As New SqlCommand("InsertarPdf", link)
Dim ruta As String = "c:\ArchivoPdf.pdf"

Try
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@Archivo", SqlDbType.Binary, LeerArchivo(ruta).Length)
cmd.Parameters("@Archivo").Value = LeerArchivo(ruta)
link.Open()
cmd.ExecuteNonQuery()
link.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim link As New SqlConnection("server=localhost\Sqlexpress;databas e=Pruebas;Integrated Security=true")
Dim cmd As New SqlCommand("RecuperarPdf", link)
Dim arreglo As Byte()
Dim ruta As String = "c:\ArchivoPdf.pdf"

Try
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@IdArchivo", SqlDbType.Int)
cmd.Parameters("@IdArchivo").Value = CInt(TextBox1.Text)
link.Open()
arreglo = cmd.ExecuteScalar()
My.Computer.FileSystem.WriteAllBytes("Y:\PDFS\PdfG enerado.pdf", arreglo, True)
link.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub
End Class




CREATE PROCEDURE RecuperarPdf (
@IdArchivo INT
)
AS
BEGIN
SELECT Archivo FROM Archivo WHERE IdArchivo = @IdArchivo
END

--================================================== ====


CREATE PROCEDURE InsertarPdf (
@Archivo VARBINARY (MAX)
)
AS
BEGIN
INSERT INTO Archivo (Archivo) VALUES (@Archivo)
END

--================================================== ====



CREATE TABLE [dbo].[Archivo](
[IdArchivo] [int] IDENTITY(1,1) NOT NULL,
[Archivo] [varbinary](max) NOT NULL,
CONSTRAINT [PK_Archivo] PRIMARY KEY CLUSTERED
(
[IdArchivo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

--================================================== ====


Con esto haces todo, lo insertas en la base de datos, lo lees y lo almacenas en disco. te agrego los scripts

Si te sirvio este post...no olvides agradecer con un Karma

Última edición por xjuanch0x; 30/12/2009 a las 15:44 Razón: Mensaje
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 18:32.