2013-02-27 67 views
0

我想將我的Java程序生成的PDF保存到Mysql數據庫中,並試圖在Java程序中檢索/顯示相同內容。下面的代碼有什麼我迄今所做的,從MySql/Java檢索並顯示PDF文檔

public class Save_PDFimage extends javax.swing.JFrame { 
    private ImageIcon format = null; 
    Connection conn = null; 
    ResultSet rs=null; 
    PreparedStatement pst=null; 
    //String filename = "C:\\Users\\***\\Desktop\\n.png"; 
    String filename = "C:\\Users\\***\\Desktop\\in.pdf"; 
    int s = 0; 
    byte[] person_image = null; 

private void Save_DBActionPerformed(java.awt.event.ActionEvent evt) { 
    try { 
    File image = new File(filename); 
    FileImageInputStream FIS = new FileImageInputStream(image); 
    ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
    byte[] buf = new byte[1024]; 
    for(int readNum; (readNum=FIS.read(buf))!=-1;) { 
    bos.write(buf,0,readNum); 
    } 
    person_image = bos.toByteArray(); 
    } catch(Exception e) 
    { 
    JOptionPane.showMessageDialog(null, e); 
    } 

    try { 
    String sql = "Insert into invoices (Pdfs, Invoice_no_R) values(?,?)"; 
    String i= "1"; 
    pst = conn.prepareStatement(sql); 
    pst.setBytes(1, person_image); 
    pst.setString(2, i); 
    pst.execute(); 
    } catch(Exception e) 
    { 
    JOptionPane.showMessageDialog(null, e); 
    } 
    } 

// Code for displaying the retrieved PDF in a jLabel 

    private void Show_imageActionPerformed(java.awt.event.ActionEvent evt) { 
    try { 
     String sql = "select Pdfs from invoices where Invoice_no_R = 1"; 
     pst = conn.prepareStatement(sql); 
     rs = pst.executeQuery(); 

     if (rs.next()) 
     { 
     byte[] Imagedata = rs.getBytes("Pdfs"); 
     format = new ImageIcon(Imagedata); 
     jLabel1.setIcon(format); 
     } 
    } catch(Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
     e.printStackTrace(); 
    } } 

我能夠保存PDF中,但程序取回後不顯示圖像,相同的邏輯工作正常的PNG/JPG文件。

請幫助...

拉梅什

+0

你可以嘗試[pdfOne](http://code.google.com/p/pdfonejava/),它有一個jar下載轉換PDF格式爲JPEG,如果GPL許可證適合你。 – 2013-02-27 11:56:51

+0

感謝您的建議,我正在嘗試着解決這個問題。將更新你,如果它符合我的目的。 – 2013-02-27 12:06:14

回答

0

PDF不是圖像格式 - 這是一個二進制格式。 您不能將它設置爲您圖片圖標的圖標。

+0

嗯,什麼可能是一個合適的方法來解決這個問題呢? – 2013-02-27 11:37:53

+0

取決於你想要做什麼?你需要將PDF圖像設置爲按鈕圖標嗎?那麼你需要得到一個PDF圖像(只需谷歌或從adobe.com得到它) - 一旦擁有它,就像其他任何png/jpg一樣。 – Jay 2013-02-27 13:55:06