Pessoal boa noite, desculpe voltar neste tópico tão batido, estou com um erro aqui inexperiência minha se alguem puder me ajudar.
Estou precisando abrir um PDF em minha aplicação, um Manual, porem ele ficará dentro do JAR, enquanto estou testando no eclipse esta funcionando normalmente porem quando gera o JAR não consigo mais abrir o PDF!
estou utilizando os seguintes procedimentos…
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import com.adobe.acrobat.Viewer;
@SuppressWarnings("serial")
public class ExibePDF extends JDialog {
private Viewer viewer;
public ExibePDF(String caminho) {
printarPDF(caminho);
}
private void printarPDF(String caminho) {
try {
InputStream input;
viewer = new Viewer();
input = new FileInputStream(new File(caminho));
if (input != null) {
ByteArrayOutputStream output = new ByteArrayOutputStream();
// set read buffer size
byte[] rb = new byte[1500];
int ch = 0;
while ((ch = input.read(rb)) != -1) {
output.write(rb, 0, ch);
}
byte[] b = output.toByteArray();
input.close();
output.close();
viewer.setDocumentInputStream(new ByteArrayInputStream(b));
}
viewer.activate();
viewer.setProperty("Default_Page_Layout", "SinglePage");
viewer.setProperty("Default_Zoom_Type", "FitVisibleWidth");
viewer.setProperty("Default_Magnification", "100");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "MANUAL INDISPONIVEL");
}
Integer largura = (Toolkit.getDefaultToolkit().getScreenSize().width) - 10;
Integer altura = (Toolkit.getDefaultToolkit().getScreenSize().height) - 30;
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(largura, altura));
this.setSize(largura, altura);
setLayout(new BorderLayout());
add(viewer, BorderLayout.CENTER);
getRootPane().getActionMap().put("cancelar", cancelarAction);
getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke("ESCAPE"), "cancelar");
}
private javax.swing.Action cancelarAction = new javax.swing.AbstractAction() {
public void actionPerformed(ActionEvent e) {
dispose();
}
};
}
Sou novato não sei direito, porem se tivesse um geito de pegar o PDF do meu projeto e colocar uma area do sistema, buffer algo assim!! não sei!
Separei um as libs as classes tbm estou postando para facilitar se alguem, quiser testar, ou para um PDF fixo no fisco ou abrir PDF do disco esta funcionado…
Este codigo achei aqui no GUJ mesmo…!
http://www.guj.com.br/java/211255-adobe-java-swing
O projeto esta postado, com as libs esta aqui: --> https://skydrive.live.com/?cid=4c800dd30fdeb3cc&sc=documents#!/?cid=4c800dd30fdeb3cc&sc=documents&id=4C800DD30FDEB3CC%21588