Pdf + jsp

Olá amigos,
Estou diante de uma problemática que não consigo resolver, e gostaria de ajuda:
Tenho duas JSPs, sendo que a primeira chama a segunda dentro de um iFrame.
Porém, ao chamar esta segunda, eu passo um parâmetro para pesquisa e nessa pesquisa eu recupero do banco um arquivo pdf em base64, decodo ele numa boa gero o byteArray sem problema e tal, porém ao montar o documento e tentar abrilo a jsp pede para fazer o download do arquivo, e eu nao quero isso, quero que o pdf seja aberto na jsp mesmo, ja dei uma olhada na net e as soluções que encontrei referem-se à Jasper, iReport, etc, gostaria de saber de existe alguma maneira direta de fazer isso…
Deve ser uma questão trivial… mas agradeceria qlq ajuda.
Att
Calazans

Aí camarada, a opção de pesquisa do guj sempre funciona.
Dá uma olhada aí http://www.guj.com.br/java/55341-abrir-pdf-no-browser-via-servlet

Amigo, que a opção de pesquisa funciona eu sei, tanto que esse tópico aí eu ja visitei e tirei algumas duvidas pelo código do andrerios.
Porém ainda não resolveu 100% meu problema. A questão é que continua continua mandando fazer o download do pdf montado e eu não tenho mais ideia do que pode ser, o código está exatamente igual ao do andrerios inclusive.
Isso poderia estar acontecendo por eu estar usando GlassFish?! Sei la…

Att

[quote=WBCalazans]Amigo, que a opção de pesquisa funciona eu sei, tanto que esse tópico aí eu ja visitei e tirei algumas duvidas pelo código do andrerios.
Porém ainda não resolveu 100% meu problema. A questão é que continua continua mandando fazer o download do pdf montado e eu não tenho mais ideia do que pode ser, o código está exatamente igual ao do andrerios inclusive.
Isso poderia estar acontecendo por eu estar usando GlassFish?! Sei la…

Att[/quote]
Cara, sem ver teu código, não sei como está fazendo. Mas uma dica é tentar com um outro navegador, por exemplo o google chrome, ele abre pdf direto no browser, basta você direcionar o caminho na url que ele abre. Talvez o seu navegador não tem suporte para abrir PDF por isso ele pede para fazer o download.

Olá amigo, tive um problema semelhante e como o esdras_63 disse pode ser o navegador, no meu caso era o firefox, que no menu opções -> tipo de arquivo estava configurado pra fazer download de arquivos pdf em vez de abrir com o Acrobat.

wendelguedes… interessante, vou observar esse detalhe…

Vou tentar explicar melhor meu problema exibindo cógio… acho que será melhor…

index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=windows-1252"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    <title>Index</title>
    <script type="text/javascript" src="jQuery-1.7.1.js"></script>
    <script>
        var pdfObject;
        function loadPdf(id){
            try{
                $('#pdfFrame').attr("src","arquivoPDF.jsp?id="+id); 
                $('#pdfFrame').ready(
                    $('#pdfFrame').load( function(){
                        imprimePdf();
                     })
                );
            }catch(e){
                alert("Erro ao carregar pdf\n\n"+e);
            }
        }
        
        function imprimePdf(){
            try{
                frames["pdfFrame"].print();
            }catch(e){
                alert("Erro ao imprimir pdf");
            }
        }
    </script>
  </head>
  <body>
      
      <object 
          <!-- tenho dentro deste object uma aplicação Flex que apenas passa a id para o metodo loadPdf por ExternalInterface -->
      </object>
      <iframe id="pdfFrame" style="visibility: hidden;">
      </iframe>
  </body>
</html>

arquivoPDF.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="sun.misc.BASE64Decoder"%>
<%@page import="XXX"%>
<%

    BASE64Decoder decoder = new BASE64Decoder();
    String id = request.getParameter("id");
    Arquivo arq = new Arquivo();
    arq.b64 = PesquisaArquivo.pesquisaPorId(id);
    byte[] bytes = decoder.decodeBuffer(arq.b64);
    response.setContentType("application/pdf");
    try{
        DataOutputStream dataOutput = new DataOutputStream(response.getOutputStream());
        response.setContentLength(bytes.length);
        for(int i = 0; i < bytes.length; i++){
            dataOutput.writeByte(bytes[i]);
        }

    }catch(Exception ex){
        System.out.println("Erro: "+ex.getMessage());
    }
%>   

O código está simplificado, mas acho que nao vai gerar duvida a cerca da funcionalidade em questão…
Sei que a classe BASE64Decoder do pacote sun.misc já não é mais interessante ser usada mas neste contexto não é um problema…
Quero apenas montar esse pdf e deixado escondido nesse iframe do index, tem como fazer isso num tem? :slight_smile:

att
Calazans

Bom, ainda não ficou 100% mas, até agora, no que consegui concluir é que o wendelguedes está correto, meu problema é diretamente relacionado com o navegador em uso.

Se tiver alguma novidade… reporto… :wink:
Att