Abrir arquivo PDF [RESOLVIDO]

Bom dia…

Eu estou precisando colocar um arquivo pdf pronto dentro da minha aplicaçao e quando o usuario clicar no commandLink esse arquivo seria aberto em outra aba do internet explorer…

Tipo assim, é um arquivo ja editado que na verdade seria como se fosse o Menu Ajuda do sistema. Quando o usuario clicar no menu Ajuda, será aberto outra aba do internet explorer com o pdf.

Como esse arquivo nao será alterado por ninguem, ele pode ficar dentro da minha propria aplicação…

Qual seria a melhor forma de fazer isso? Eu procurei e nao consegui encontrar uma forma legal de fazer isso…

Muito obrigado mais uma vez…

dependendo de como esta sua aplicacao, servlet é a melhor opcao -
normalmente nesses casos, acionamos um pop-up, ou seja, o usuario clica e o sistema abre um pop-up com esse pdf.

lembrando que o usuario deve ter previamente instalado o acrobat reader ou outro leitor PDF para funcionar.

agora abrir numa nova aba eu nao sei se seria possível.

vlws.

Bom dia ibispo…
Obrigado pela ajuda…

Cara, Você teria alguma coisa que possa me passar ai pra eu utilizar? Eu estou utilizando JSF, richFaces…
lembrando que o arquivo estará dentro da minha aplicação…

Eu ainda estou meio leigo no desenvolvimento web…

Agradecido…

Se é apenas para carregar o arquivo basta usar o iframe, exemplo:

<iframe frameborder="0"  src="meuArquivo.pdf" width="100%" height="450"></iframe>  

sendo assim vc pode carregar o pdf dentro de um rich:modalPanel ou em um popup,mas lembre que o iframe deve sempre estar dentro de um form.

Eu desenvolvi um sistema usando JSF, onde o usuário ao clicar no botão, o sistema abre um pop-up com uma url que apresenta um boleto bancário para o usuário.

Abaixo um exemplo do acionamento do botão

<a4j:commandButton value="Abrir ajuda"
                   title="Clique aqui abrir ajuda"
                   onclick="javascript:abreTelaAjuda('#{processoMB.dadosUrl}');"/>

(nesse caso, você pode continuar a usar seu commandLink

onde {processoMB.dadosUrl} é a url que apresenta o PDF da ajuda. No seu caso, crie na sua MB a url onde está o seu PDF

Na sua página xhtml, jsf, jsp, etc, abra a tag e crie uma função que abre o pop-up

     function abreTelaAjuda(urlDoSeuPDFAjuda ) {

                window.open( urlDoSeuPDFAjuda,
                                     "",
                                     "toolbar=no, location=no, status=no, menubar=yes, " +
                                     "scrollbars=yes, resizable=no, width=680, " +
                                     "height=650, left=180, top=50" );

     }

dentro da sua página você pode usar o código abaixo para pegar o endereço completo onde está seu PDF

"#{facesContext.externalContext.requestContextPath}"

Espero ter ajudado,

Qquer coisa, posta ae,

[quote=marcos1EM]
Se é apenas para carregar o arquivo basta usar o iframe, exemplo:

<iframe frameborder="0"  src="meuArquivo.pdf" width="100%" height="450"></iframe>  

sendo assim vc pode carregar o pdf dentro de um rich:modalPanel ou em um popup,mas lembre que o iframe deve sempre estar dentro de um form.[/quote]

Opa Marcos,

A galera aqui no serviço pediu para nao usar iframe… Esses frames estao acabando e vao ser abolidos em proximas versoes de browser. Mas Obrigado pela ajuda…

Bispo,

Eu testei oq vc me passou ai cara… Ele abre o pop-up, mas dá erro 404… Olha meu codigo

<a4j:commandLink value="Ajuda" shape="rect" ajaxSingle="true"
						onclick="javascript:abreTelaAjuda('#{topoMB.dadosUrl}');" target="_blank"
						id="cmdAjuda" style="cursor: help;" />

no meu Bean topoMB tem a String dadosUrl retornando o diretorio que o arquivo esta… br.com.empresa.util.PDF, sendo PDF o nome do arquivo em .pdf…

parece que o javascript é chamado, pq ele abre o pop-up, o meu bean tb é chamado retornando o caminho…
O que será que tá de errado?

esse diretório é do pacote da sua aplicação, portanto seu PDF não pode estar aqui.

O seu PDF deve estar no diretorio do seu conteiner ou servidor de aplicação. Por exemplo:

Quando vc digita:

http://localhost:0000/seuSistema

seuSistema deve estar numa pasta no seu conteiner. Sendo assim você deve ter uma subPasta onde você coloca seu PDF.

Dúvidas, posta ae.

Bispo

Bispo, desculpa a ignorancia, mas o negocio nao tá dando certo vei…rs
Quando eu clico no link de Ajuda, ele abre uma outra janela do Brownser com a minha aplicação…
No meu jboss aonde fica o meu arquivo aplicacao.war eu coloquei tb o arquivo Help.pdf… Ai no codigo do link eu coloquei isso…


<a4j:commandLink value="Ajuda" shape="rect" ajaxSingle="true"
						onclick="javascript:abreTelaAjuda(#{facesContext.externalContext.requestContextPath}/Help.pdf);" target="_blank"
						id="cmdAjuda" style="cursor: help;" />

O que estou fazendo de errado? tá faltando alguma coisa?

Informação importante: Urls no java são ‘case-sensitive’, ou seja, Help.pdf é diferente de help.pdf


Coloque o parâmetro da chamada da função javascript:abreTelaAjuda() entre aspas simples, conforme abaixo

<a4j:commandLink value="Ajuda" shape="rect" ajaxSingle="true"   
                        onclick="javascript:abreTelaAjuda('#{facesContext.externalContext.requestContextPath}/Help.pdf');" target="_blank"   
                        id="cmdAjuda" style="cursor: help;" />  

se ainda assim não funcionar, dentro da sua função

abreTelaAjuda(urlArquivoHelp) { ... }

inclua a função

alert( urlArquivoHelp ); 

para apresentar o conteudo urlArquivoHelp e manda ae.

Entao… eu fiz as alteraçoes que voce falou…

Agora o pop-up abre dando o erro 404, ou seja, pagina nao encontrada…

eu coloquei o alert() no javascript e retornou “/WebApp/Help.pdf”…

Eu coloquei o arquivo somente dentro da pasta que o meu WebApp.war esta no servidor jBoss…

Eu preciso colocar esse arquivo dentro da minha aplicaçao tb? pq pela msg que o alert retornou, esse caminho fica dentro da minha aplicaçao, nao??

Vlw Bispo…

Bispo… Consegui resolver cara…

Eu coloquei o arquivo no lugar certo e consegui resolver o problema… Agora o pop-up esta abrindo com o pdf certinho… Muito obrigado pela ajuda cara…
Desculpa o incomodo ai…

vlw mesmo…

Precisando de alguma coisa, é so falar…
Abraços…

francis.junio,

edite o primeiro assunto e coloque [RESOLVIDO] nele.

assim aparece [resolvido], ok?

GUJ é isso, a comunidade mais unida do universo!

vlw!

Ajudou a resolver meu problema!
Obrigada ibispo :wink: