Abrir arquivo PDF [RESOLVIDO]

13 respostas
F

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…

13 Respostas

I

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.

F

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…

M

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.

I

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,

F

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.

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…

F

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?

I

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

F

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?

I

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.

F

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…

F

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…

I

francis.junio,

edite o primeiro assunto e coloque [RESOLVIDO] nele.

assim aparece [resolvido], ok?

GUJ é isso, a comunidade mais unida do universo!

vlw!

B

Ajudou a resolver meu problema!
Obrigada ibispo :wink:

Criado 12 de agosto de 2010
Ultima resposta 27 de out. de 2010
Respostas 13
Participantes 4