none
Ler e visualizar arquivos PDF gravados no Banco

    Question

  • Boas,

    Estou com um problema, salvo um arquivo PDF no banco em um campo de tipo IMAGE, depois de transformá-lo em byte[].

                                

      //Prepara o arquivo para salvar em BD

                FileStream fs = new FileStream(desenho.ArquivoCaminho, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);
                byte[] Arquivo = br.ReadBytes((int)fs.Length);
                br.Close();
                fs.Close();


                //Conexão e comando de inserção.
                SqlConnection cn = new SqlConnection(Configuracao.ConexaoCE_NOVO);
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                cmd.CommandText = @"Insert into Desenhos(CodigoDesenho,
                                                         CodCli,
                                                         Projeto,
                                                         Revisao,
                                                         DataCadastro,
                                                         DataElaboracao,
                                                         DataRevisao,
                                                         Descricao,
                                                         Status,
                                                         Arquivo)
                                                  Values(@CodigoDesenho,
                                                         @CodCli,
                                                         @Projeto,
                                                         @Revisao,
                                                         @DataCadastro,
                                                         @DataElaboracao,
                                                         @DataRevisao,
                                                         @Descricao,
                                                         @Status,
                                                         @Arquivo)";

                cmd.Parameters.AddWithValue("@CodigoDesenho", desenho.CodDesenho);
                cmd.Parameters.AddWithValue("@CodCli", cliente.CardCode);
                cmd.Parameters.AddWithValue("@Projeto", desenho.Projeto);
                cmd.Parameters.AddWithValue("@Revisao", desenho.Revisao);
                cmd.Parameters.AddWithValue("@DataCadastro", desenho.DataCadastro);
                cmd.Parameters.AddWithValue("@DataElaboracao", desenho.DataElaboracao);
                cmd.Parameters.AddWithValue("@DataRevisao", desenho.DataRevisao);
                cmd.Parameters.AddWithValue("@descricao", desenho.Descricao);
                cmd.Parameters.AddWithValue("@Status", desenho.Status);
                cmd.Parameters.AddWithValue("@Arquivo",Arquivo);

                cn.Open();
                cmd.ExecuteNonQuery();
                cn.Close();
            }

    só que um problema

    Como abrir este arquivo novamente através de um select, eu só vi trazendo os dados e jogando a imagem em um picture box, mas a imagem fica pequena, será que consigo abrir como pdf ou de outro modo, não encontro nada referente a isso.

    Obrigado desde já.


    Vivendo e Aprendendo.

    Thursday, August 02, 2012 7:46 PM

Answers

  • O que voce pode fazer e, buscar na base de dados com select e depois gravar na memoria e pescar da memoria pra o programa:

    http://stackoverflow.com/questions/2454047/convert-byte-to-pdf


    http://malange-levi.blogspot.co.uk/

    • Marked as answer by Bruno Sella Monday, August 06, 2012 1:43 PM
    Thursday, August 02, 2012 8:03 PM
    Moderator
  • consegui aqui lendo e criando um arquivo temporário.

    Só preciso verificar como fazer para deletar este arquivo após fechar o PDF.

             

    DesenhosBLL obj = new DesenhosBLL();

                string file = Path.GetTempFileName() + ".PDF";
                File.WriteAllBytes(file, obj.VisualizarDesenhos(3));
                var process = System.Diagnostics.Process.Start(file);
      //File.Delete(file);

    do jeito que está ele deleta antes de abrir preciso deletar depois de fechado o arquivo pdf pelo usuário.


    Vivendo e Aprendendo.

    Friday, August 03, 2012 2:02 PM

All replies

  • O que voce pode fazer e, buscar na base de dados com select e depois gravar na memoria e pescar da memoria pra o programa:

    http://stackoverflow.com/questions/2454047/convert-byte-to-pdf


    http://malange-levi.blogspot.co.uk/

    • Marked as answer by Bruno Sella Monday, August 06, 2012 1:43 PM
    Thursday, August 02, 2012 8:03 PM
    Moderator
  • O que voce pode fazer e, buscar na base de dados com select e depois gravar na memoria e pescar da memoria pra o programa:

    http://stackoverflow.com/questions/2454047/convert-byte-to-pdf


    http://malange-levi.blogspot.co.uk/

    Nossa to meio noob não to sabendo fazer, o meu não eh WEB é windows Forms, teria alguma referencia para estudo sobre?

    Grato Levi;


    Vivendo e Aprendendo.

    Friday, August 03, 2012 12:45 PM
  • consegui aqui lendo e criando um arquivo temporário.

    Só preciso verificar como fazer para deletar este arquivo após fechar o PDF.

             

    DesenhosBLL obj = new DesenhosBLL();

                string file = Path.GetTempFileName() + ".PDF";
                File.WriteAllBytes(file, obj.VisualizarDesenhos(3));
                var process = System.Diagnostics.Process.Start(file);
      //File.Delete(file);

    do jeito que está ele deleta antes de abrir preciso deletar depois de fechado o arquivo pdf pelo usuário.


    Vivendo e Aprendendo.

    Friday, August 03, 2012 2:02 PM