none
CONVERTIR PDF A BYTE EN VB.NET RRS feed

  • Pregunta

  • Hola, necesito convertir un documento pdf a un arreglo de bytes para estos guardarlos en una base de datos y poder tenerlos almacenados.

    AYUDAAAAAAAAAA!

    miércoles, 14 de diciembre de 2016 20:15

Respuestas

  • Hola carloscoronado95,

    Tendrías que enviarlo mediante el parámetro a la consulta.

    Algo como :

    Try
        Using con As New MySqlConnection("MiCadenaConexion")
            con.Open()
    
            Dim query = "insert into .... values (..., @pdf)"
            Dim cmd As New MySqlCommand(query, con)
            cmd.Parameters.AddWithValue("@pdf", File.ReadAllBytes("miRuta"))
            'Demás parámetros...
    
            'Ejecuta la consulta
            cmd.ExecuteNonQuery()
    
            MessageBox.Show("Datos registrados!")
    
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Claro está que tienes que completar la query con los valores reales.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta carloscoronado95 miércoles, 14 de diciembre de 2016 20:51
    miércoles, 14 de diciembre de 2016 20:29

Todas las respuestas

  • Hola carloscoronado95,

    Si tu archivo PDF se encuentra en una ruta, puedes usar la clase File.

    Dim misByte As Byte() = File.ReadAllBytes("miRutaPDF")

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 14 de diciembre de 2016 20:18
  • Y ese arreglo como lo inserto en mi query de mysql?
    miércoles, 14 de diciembre de 2016 20:22
  • Hola carloscoronado95,

    Tendrías que enviarlo mediante el parámetro a la consulta.

    Algo como :

    Try
        Using con As New MySqlConnection("MiCadenaConexion")
            con.Open()
    
            Dim query = "insert into .... values (..., @pdf)"
            Dim cmd As New MySqlCommand(query, con)
            cmd.Parameters.AddWithValue("@pdf", File.ReadAllBytes("miRuta"))
            'Demás parámetros...
    
            'Ejecuta la consulta
            cmd.ExecuteNonQuery()
    
            MessageBox.Show("Datos registrados!")
    
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Claro está que tienes que completar la query con los valores reales.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta carloscoronado95 miércoles, 14 de diciembre de 2016 20:51
    miércoles, 14 de diciembre de 2016 20:29
  • ME HAS SALVADO LA VIDAAAAAAAAAAAAAAAA!!! GRACIAS!

    AHORA ABUSANDO DE QUE ME ESTAS AYUDANDO, AHORA PARA ESE ARCHIVO CONVERTIRLO DE NUEVO A PDF PARA EXTRAERLO DE LA BASE DE DATOS :)

    miércoles, 14 de diciembre de 2016 20:51
  • Hola carloscoronado95,

    Te refieres a que al hacer la consulta a la BD te retorne los bytes y crear el archivo PDF ?

    En caso sea correcto aplicarías la misma clase File, pero usarías el método WriteAllBytes(...) para crear el archivo.

    Algo como :

    Dim rutaPDF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
                                "file.pdf")
    
    File.WriteAllBytes(rutaPDF, misBytesBD)

    Dónde : En la ruta del escritorio crearía un archivo PDF con el nombre 'file.pdf'.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    miércoles, 14 de diciembre de 2016 21:20
  • Una duda dentro del write tienes la variable "misBytesBD", esa es la consulta del query?
    miércoles, 14 de diciembre de 2016 21:46
  • Hola carloscoronado95,

    Exacto, eso son los bytes que te retornan al hacer la consulta 'Select * from'. Tendrías que crear una ruta con el nombre del archivo a crear y enviarle el valor.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 14 de diciembre de 2016 21:49