Abrir um arquivo PDF (Salvo na mesma Pasta)

1 resposta
rolipam

Olá pessoal, possuo 2 arquivos PDF (salvos na mesma pasta da aplicação) que quero que sejam abertos pelo meu programa JAVA quando o usuário clicar no menu correspondente ao arquivo selecionado. Pode ser aberto pelo próprio Acrobat, mas preferiria que eles fossem abertos dentro de uma janela da própria aplicação. Alguém tem alguma sugestão? Já utilizei os códigos abaixo, mas não está dando certo:

Runtime.getRuntime().exec("ficha.pdf");
File pdf = new File("ficha.pdf");  
try {  
  Desktop.getDesktop().open(pdf);  
} catch(Exception ex) {  
  ex.printStackTrace();  
  JOptionPane.showMessageDialog(null, "Erro no Desktop: " + ex);  
}
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
desktop.open(new File("ficha.pdf");

Li também em alguns fóruns sugerindo utilizar o PDF-Box (Apache), o PDF-Render (Sun) ou o iText, que manipulam arquivos pdf, mas o que quero é somente abri-los para o usuário do sistema.

Obrigado.

1 Resposta

rolipam

Gente!!! Ninguém tem nehuma Sugestão??? Também tentei abrir os arquivos utilizando o código abaixo, que faz uso do pdf-render

import com.sun.pdfview.PDFFile;  
import com.sun.pdfview.PDFPage;  
import com.sun.pdfview.PagePanel;  
import java.io.*;  
import java.nio.ByteBuffer;  
import java.nio.channels.FileChannel;  
import javax.swing.*;  
  
/** 
 * An example of using the PagePanel class to show PDFs. For more advanced 
 * usage including navigation and zooming, look ad the  
 * com.sun.pdfview.PDFViewer class. 
 * 
 * @author 
 */  
public class Main {  
  
    public static void setup() throws IOException {  
      
        //set up the frame and panel  
        JFrame frame = new JFrame("PDF Test");  
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        PagePanel panel = new PagePanel();  
        frame.add(panel);  
        frame.pack();  
        frame.setVisible(true);  
  
        //load a pdf from a byte buffer  
        File file = new File("ficha.pdf");  
        RandomAccessFile raf = new RandomAccessFile(file, "r");  
        FileChannel channel = raf.getChannel();  
        ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY,  
            0, channel.size());  
        PDFFile pdffile = new PDFFile(buf);  
  
        // show the first page  
        PDFPage page = pdffile.getPage(0);  
        panel.showPage(page);  
          
    }  
  
    public static void main(final String[] args) {  
        SwingUtilities.invokeLater(new Runnable() {  
            public void run() {  
                try {  
                    Main.setup();  
                } catch (IOException ex) {  
                    ex.printStackTrace();  
                }  
            }  
        });  
    }  
}

… Mas também não está abrindo os arquivos!!!
Algúem pode me ajudar??? Obrigado!!!

Criado 31 de março de 2012
Ultima resposta 3 de abr. de 2012
Respostas 1
Participantes 1