Abrindo arquivo pdf via código

Olá a todos, alguém sabe como abrir um arquivo pdf via código ? Por exemplo, o “arquivo.pdf” sendo aberto com o programa padrão de vizualização de pdf… Se não, vcs conhecem um bom visualizador de pdf, escrito em java, que pelo menos permita escolher a impressora a ser usada para imprimir?

Ueba … qual o SO?

Se for windows é só tentar executar o arquivo pdf que o windows se encarrega de chamar o programa registrado para visualiza-lo.

com arquivos executáveis da certo mais com arquivos normais não funciona.

o grupo Apache tem uma ferramenta chamada FOP que dispõe de uma classe que carrega uma GUI (em Swing) que abre documentos PDF. Na verdade ela é usada para transformar arquivos XSL-FO em PDF mas se você já tem o PDF fica mais fácil para abrir.

O link é:
xml.apache.org/fop

Eita, funciona sim … minhas aplicações iniciam o acrobat dessa maneira (executando o pdf).

vou verificar novamente com arquivos não executáveis. :?

No acrobat tem uma library para vizualizar o PDF dentro do Java.

http://www.adobe.com/products/acrviewer/acrvdnld.html?name=Accept#java

Essa eu não sabia, vou dar uma olhada!
Muitas vezes há uma incompatibilidade com o Internet Explorer na hora de abrir o PDF em aplicações web. Se ela aparecer essa pode ser uma boa saída.

Ei, smota, funciona com arquivos normais? Que classe vc tá usando? Coloca o código pra gente ver ?

Outra boa alternativa é utilizar o iText

Runtime.getRuntime().exec("command /C "" + f.getAbsolutePath()  + """);

Onde f é o arquivo PDF.

eu fazia sem chamar o command, por isso não dava certo!

você tambem pode criar um metodo que chame proprio adobe instalado na maquina passando por parametro o caminho para o arquivo .pdf

Caras, não consegui fazer funcionar o código do smota no linux… Vou continuar tentando… E aí duosan, coloca o código pra gente entender a tua idéia…

No linux não é com o command … não sei como fazer no linux :cry:

Talvez não seja tão trivial … acho que ao inves de basear o comando no SO vc vai ter que se basear no gerenciador de janelas que estiver usando pra pegar o aplicativo registrado para abrir PDFs.

Alguem tem ideia?

Nao rola, smota… o unico jeito de iniciar um programa de forma portavel eh pedindo pro usuario o caminho completo dele. Eh um jeito bem familiar de fazer a coisa pros UNIXeiros de plantao… afinal, eh pra isso que a gente tem aquele monte de variaveis FOO_HOME :wink: